我在jekyll帖子上有一个单一作者" usman"生成this文章。我想要像#34;作者: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]?
答案 0 :(得分:15)
如果你想在你的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>