12

この記事を生成する単一の著者「usman」のjekyll投稿に次のヘッダーがあります。同僚も記事に寄稿できるように、「authors: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] %}

これは明らかに1人の作成者のみをサポートします。ページの両方の作成者を取得する方法はありますか?たとえば、page.author [0]?

4

1 に答える 1

19

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>

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

<p>Usman</p>

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

<p>Usman and Someone_Else</p>

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

<p>Usman, Bob, and Someone_Else</p>
于 2013-03-04T18:31:00.547 に答える