2013-03-03 8 views
6

thisの記事を生成する1人の作者 "usman"と一緒にジキルの投稿に次のヘッダーがあります。私は "著者:usman、someone_else"のようなものを持っていますので、同僚も記事に貢献することができます。これは可能ですか?どのように私はそれを設定するだろう。ジキルの1つの投稿に複数の著者を掲載するにはどうすればよいですか?

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

これがために有用であろう著者情報を各投稿に動的に注入する。

複数の人が同じ記事に投稿できるようにするためには、これはジキルとは関係がないとか、フロントマターで指定されているものとは思えません。これは、ジキルのコンテンツを共有場所(多くの場合と同じように、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:

何著者が指定されていない場合:1人の著者が指定されている

<p>No author</p> 

場合:

<p>Usman</p> 

2人の著者が指定されている場合:

<p>Usman and Someone_Else</p> 

つ以上の作者が指定されている場合:

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

Thxをし、私の質問は、私はすでにコラボレーションのためのGitでこれを持っている構文を中心にしました。これは、著者htmlを適切に生成しません。更新された質問を参照してください –

+0

@UsmanIsmail私の更新された回答はあなたの質問に今すぐ対応しますか? – jbranchaud

+0

はい、欠けていたのは、htmlテンプレートを含むテーマです。 thx –

関連する問題