我正在Jekyll网站上工作,我希望能够为小组中的每个人提供一个页面。我知道,如果集合中的文件降价,我可以使用集合来生成页面。我希望能够在集合中包含yaml文件,然后在将每个yaml文件传递到模板后生成页面。
人员文件可能如下所示:
# person-1.yaml
name: thingy m. bob
position: coffee fetcher
bio: no bio needed
# person-2.yaml
name: mars e. pan
position: head honcho
bio: expert in everything
然后是这样的模板文件(people-template.md):
# {{ page.name }} - {{ page.position }}
{{ page.bio }}
输出将是
/people/
下的单个文件,即/people/person-1
,/people/person-2
,其格式与模板中相同,但使用.yaml
文件。我正在使用GitHub页面,所以我不想使用任何不支持的插件。
最佳答案
我已经实现了类似的东西...这是我创建的设置:
- _Layouts
- person.html
...
people
- index.md (list of people - see code below)
- _posts
- 2015-01-01-person-one.md (ordering defined by date which is thrown away)
- 2015-01-02-person-two.md
- 2015-01-03-person-three.md
...
然后,可以使用类似以下内容的人员列表:
<ul>
{% for person in site.categories.people %}
<li><a href="{{ person.url }}>{{ person.name}}"></a></li>
{% endfor %}
</ul>
每个人的形式
---
name: "thingy m. bob"
# using quotes to avoid issues with non-alpha characters
position: "coffee fetcher"
bio: "no bio needed"
layout: person
---
any markdown if you want more of a description
我希望这能给您一些开始...我认为将
_posts
文件夹放在people
文件夹下会自动将类别设置为people
。如果我错了,只需在yaml中添加category: people
。如果要删除日期部分,可以在_config.yaml中设置帖子网址的模式。
祝好运
关于jekyll - 在不使用插件的情况下从yaml创建多个jekyll页面,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32715434/