所以我在Jekyll _data文件夹中有一个文件authors.yml。它的设置如下:
short_name:
name: First Lastname
email: e@mail.com
twitter: twitterID
image: image.jpg
bio: 'Bio goes here.'
我想在此文件中创建每位作者的列表页面。这就是我的尝试:
<ul>
{% for author in site.data.authors %}
<li>{{ author.name }}</li>
{% endfor %}
</ul>
返回的是许多与文件中的作者数相匹配的空列表标记。
我想知道是否有任何方法可以显示每位作者中包含的数据,而无需在YAML文件中使用以下内容(因为它会破坏网站上的其他代码):
-author: short_name
name: First Lastname
email: e@mail.com
twitter: twitterID
image: image.jpg
bio: 'Bio goes here.'
这可能吗?
或者,当我添加&#39;作者&#39;时,代码被破坏了。关键是以下几点。
在模板中:
{% assign author = site.data.authors[post.author] %}
在插件中:
entry_name = site.data['authors'][entry.author]
答案 0 :(得分:1)
我不确定这是否是你所追求的,但我一直试图解决类似的问题。
{% for member in site.data.authors %}
{% if member.short_name == post.author %}
{% assign author = member %}
{% endif %}
{% endfor %}
为此,我需要在我的数据中加入short_name
项。见下文:
- author: short_name
name: First Lastname
short_name: first_lastname
email: e@mail.com
twitter: twitterID
image: image.jpg
bio: 'Bio goes here.'
现在我们可以在模板中使用{{ author.name }}
等。
答案 1 :(得分:1)
我实际上written a blog post就这个问题而言。在_data文件中,您只需为要显示的每组作者属性创建一个新条目。
因此,如果您将authors.yml文件更改为如下所示:
- name: John Doe
email: john.doe@example.com
twitter: @johndoe
- name: Mary Doe
email: mary.doe@example.com
twitter: @notjohndoe
然后您可以在作者对象上引用您要查找的属性:
{% for author in site.data.authors %
{% author.name %}
{% author.email %}
... etc ...
{% endfor %}
希望有所帮助。
答案 2 :(得分:0)
我有同样的问题。这是最好的解决方案。
这是我的布局文件的摘录:
---
layout: sidebar-container
author: paul
includeHeader: blog-image.html
---
{% assign author = site.data.people.[page.author] %}
<article class="container">
<header>
<h1 class="title">{{ page.title }}</h1>
{% if page.subtitle %}<h2 class="subtitle">{{ page.subtitle }}</h2>{% endif %}
<div class="meta">
By <address><a rel="author" href="{{ author.link }}" title="{{ author.name }}" target="_blank">{{ author.name }}</a></address> —
<time pubdate datetime="{{ page.date | date: "%Y-%d-%B" }}" title="{{ page.date | date: "%B %d, %Y" }}">{{ page.date | date: "%B %d, %Y" }}</time>
</div>
</header>
这是我的名为'people.yml'的数据文件
dave:
id: dave
name: David Smiths
link: /bitcoin-expert/
twitter: DavidSilvaSmith
image: http://www.gravatar.com/avatar/7bbd083ea04a3c791e878da24c08b987.png
bio: David is the CEO of bitcoin bulls.
paul:
id: paul
name: Paul
link: http://www.paulsmith.com
twitter: PaulSmith
image: http://www.cs.mcgill.ca/~kry/kry-acm1.png
bio: Paul Smith rocks