2013-03-03 65 views
6

我在具有單個作者「usman」的jekyll文章中生成this文章的以下標題。我想擁有諸如「作者:usman,someone_else」之類的東西,這樣一位同事也可以爲本文做出貢獻。這可能嗎?我將如何設置它。如何在Jekyll中爲一個帖子設置多個作者?

--- 
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]?

回答

13

如果你想在你的YAML Frontmatter指定多個作者,那麼你將要使用YAML的列表語法像你這樣的類別和標籤一樣,就像這樣:

author: 
- usman 
- someone_else 

這將是有益的動態地將作者信息注入每個帖子。

至於允許多個人對同一篇文章作出貢獻,我認爲這與Jekyll或Frontmatter中指定的內容沒有任何關係。這是一個將您的Jekyll內容託管在共享位置的問題(比如在GitHub上,像許多人一樣),您和您的協作者都可以在這個文件上工作。話雖如此,請注意,如果您同時使用同一個降價文件,可能會遇到令人討厭的合併衝突。

更新

這是一個基於OP的編輯原來的問題的最新情況。

一個簡單的黑客入侵的方法是設置你的作家的標籤是這樣的:

author: Usman and Someone_Else 

這不會給你儘管有很多的靈活性。一個更好的解決方案,這將需要你修改你使用的模板,將做類似如下:

首先,設置您的YAML前置物件,以便它可以支持多個作者。

authors: 
- Usman 
- Someone_else 

現在,您將修改模板以瀏覽在YAML前端物件中指定的作者。

<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> 
+0

THX,我的問題是圍繞語法我已經有這個混帳中的協作。這不會正確生成作者html。查看更新後的問題 – 2013-03-06 15:36:40

+0

@UsmanIsmail我的更新答案能更好地解決您的問題嗎? – jbranchaud 2013-03-10 00:39:17

+0

是的,所以我想念的是它包含html模板的主題。 thx – 2013-03-11 16:06:50

相關問題