Как у меня может быть несколько авторов для одного сообщения в Jekyll?

у меня есть следующий заголовок на Jekyll post с одним автором "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] %}

Это, очевидно, будет поддерживать только одного автора, есть способ получить обоих авторов страницы? т. е. страница.автор[0] например?

1 ответов


если вы хотите указать несколько авторов в вашем YAML Frontmatter, то вы захотите использовать синтаксис списка YAML, как вы это сделали с категориями и тегами, например:

author:
- usman
- someone_else

это будет полезно для динамического ввода информации об авторе в каждый из сообщений.

Что касается разрешения нескольким людям вносить вклад в одну и ту же статью, я не думаю, что это имеет какое-либо отношение к Джекилу или тому, что указано в Frontmatter. Это вопрос наличия ваш контент Jekyll размещен в общем месте (например, на GitHub, как и многие), где вы и ваш сотрудник можете работать над файлом. При этом имейте в виду, что вы можете столкнуться с неприятными конфликтами слияния, если вы работаете над тем же файлом markdown параллельно.

обновление

это обновление, основанное на изменениях 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>