Jekyll现场所有作者名单

时间:2016-05-18 17:25:06

标签: yaml jekyll author

我目前正在使用数据文件来指定网站上的作者,我需要将所有这些文章的列表拉到“关于”页面。

以下是我的_data/authors.yml文件

的格式
# Authors
one:
  name: One
  display_name: Person One
  avatar: /img/avatar1.jpg
  permalink: author/personone/
two:
  name: Two
  display_name: Person Two
  avatar: /img/avatar2.jpg
  permalink: author/persontwo/

如果是类别页面,我会使用它来列出指定帖子的人:

{% for post in site.categories.[page.category] %}
{% assign author = site.data.authors[post.author] %}
    {{ author.display_name }}
{% endfor %}

但我希望向所有作者展示,而不必指定他们与之相关的帖子(某些作者尚未在该网站上发帖)。

想法?

编辑:

将我的代码从Jekyll docs示例转换为:

<ul>
    {% for author in site.data.authors %}
        <li>
            <a href="{{ author.permalink }}">
                {{ author.display_name }}
            </a>
        </li>
    {% endfor %}
</ul>

重建后没有显示......

2 个答案:

答案 0 :(得分:1)

您没有正确的YML结构。

_data/authors.yml中的

- name: One
  display_name: Person One
  avatar: /img/avatar1.jpg
  permalink: author/personone/

- name: Two
  display_name: Person Two
  avatar: /img/avatar2.jpg
  permalink: author/persontwo/

(注意破折号)

然后:

<ul>
    {% for author in site.data.authors %}
    <li>
        {{ author.display_name }}
    </li>
    {% endfor %}
</ul>

此外以防您想要保留原始的YAML结构。 您可以使用它来访问作者(使用索引1)。

<ul>
    {% for author in site.data.authors %}
    <li>
        {{ author[1].name }}
    </li>
    {% endfor %}
</ul>

答案 1 :(得分:0)

这对我有用,as suggested here

在_config.yml中:

authors:
  hanzou:
    name: Hanzou Hattori
    display_name: Hanzou
    gravatar: c66919cb194f96c696c1da0c47354a6a
    email: hanzou@company.com
    web: http://company.com
    twitter: company
    github: hhattori
  jorgen:
    name: Jörgen Mortensen
    display_name: Jörgen
    gravatar: 12e480a364a5c19214f99b4dfe9a11d5
    email: jorgen@company.com
    web: http://company.com
    twitter: company
    github: jorgenm

在模板中列出作者:

{% for author in site.authors %}
    {{ author[1].name }} -- {{ author[1].email }}
{% endfor %}