【问题标题】:How can I have multiple authors for one post in Jekyll?Jekyll 中的一篇文章如何拥有多个作者?
【发布时间】:2013-03-07 00:22:37
【问题描述】:

我在一个 jekyll 帖子上有以下标题,其中一个作者是“usman”,它生成了 this 文章。我想要类似“作者:usman,someone_else”这样的同事也可以为这篇文章做出贡献。这可能吗?我将如何设置它。

--- 
layout: post
title: The pitfalls of building services using Google App Engine -- Part I
date: 2013-02-24 08:18:17
author: usman
categories: 
- System Admin
tags:
- GAE

---

我查看了我正在使用的主题的帖子模板,它有以下行:

{% assign author = site.authors[page.author] %}

这显然只支持一个作者,有没有办法让页面的两个作者?即 page.author[0] 例如?

【问题讨论】:

    标签: jekyll


    【解决方案1】:

    如果您想在您的 YAML Frontmatter 中指定多个作者,那么您将希望像使用类别和标签一样使用 YAML 的列表语法,如下所示:

    author:
    - usman
    - someone_else
    

    这对于将作者信息动态注入每个帖子很有用。

    至于允许多人为同一篇文章投稿,我认为这与 Jekyll 或 Frontmatter 中的规定无关。这是将您的 Jekyll 内容托管在共享位置(例如在 GitHub 上,就像许多人一样)的问题,您和您的合作者都可以在该文件上工作。话虽如此,请注意,如果您并行处理同一个降价文件,您可能会遇到令人讨厌的合并冲突。

    更新

    这是基于 OP 对原始问题的编辑的更新。

    一个简单的黑客方法是这样设置你的作者标签:

    author: Usman and Someone_Else
    

    但这并没有给你太多的灵活性。一个更好的解决方案(需要您修改正在使用的模板)是执行以下操作:

    首先,设置您的 YAML Front Matter,以便它可以支持多个作者。

    authors:
    - Usman
    - Someone_else
    

    现在,您修改模板以通过 YAML Front Matter 中指定的作者。

    <p>
    {% assign authorCount = page.authors | size %}
    {% if authorCount == 0 %}
        No author
    {% elsif authorCount == 1 %}
        {{ page.authors | first }}
    {% else %}
        {% for author in page.authors %}
            {% if forloop.first %}
                {{ author }}
            {% elsif forloop.last %}
                and {{ author }}
            {% else %}
                , {{ author }}
            {% endif %}
        {% endfor %}
    {% endif %}
    </p>
    

    生成的 HTML:

    如果没有指定作者:

    <p>No author</p>
    

    如果指定了一位作者:

    <p>Usman</p>
    

    如果指定了两个作者:

    <p>Usman and Someone_Else</p>
    

    如果指定了两个以上的作者:

    <p>Usman, Bob, and Someone_Else</p>
    

    【讨论】:

    • Thx,我的问题是关于语法,我已经在 git 中有这个用于协作。这不会正确生成作者 html。查看更新的问题
    • @UsmanIsmail 我更新的答案现在能更好地解决您的问题吗?
    • 是的,所以我缺少的是它包含 html 模板的主题。谢谢
    • 两个以上作者示例中“和”之前的逗号实际上不会按照现在的书写方式打印。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-01
    • 1970-01-01
    • 2015-10-12
    • 2021-03-24
    • 1970-01-01
    相关资源
    最近更新 更多