在Jekyll Docs之后,我开发了一个 people.yml 文件:
johnsmith:
name: John Smith
title: Director
image: img/johnsmith.jpg
janedoe:
name: Jane Doe
title: Coordinator
image: img/janedoe.jpg
如果我循环通过人...
{% for person in site.data.people %}
<p>{{ person }}</p>
{% endfor %}
......我得到了这些输出:
johnsmith{"name"=>"John Smith", "title"=>"Director", "image"=>"img/johnsmith.jpg"}
janedoe{"name"=>"Jane Doe", "title"=>"Coordinator", "image"=>"img/janedoe.jpg"}
但是,当我尝试从yaml文件中只访问一个成员时......
{% assign person = site.data.people['janedoe'] %}
...我得到的数据略有不同:
{"name"=>"Jane Doe", "title"=>"Coordinator", "image"=>"img/janedoe.jpg"}
我拿了这些信息,然后我开始制作一个 person-card.html 包括:
<div>
<img src="{{ person[1].image }}" alt="{{ person[1].name }}">
</div>
<div>
<p>{{ person[1].name }}</p>
<p>{{ person[1].title }}</p>
</div>
在具有访问数据文件的循环的页面上,它可以工作 . 相反,如果我将它与从前面传入的人一起使用它,它就不起作用,因为必须删除索引 . 将其更改为有效:
---
layout: default
person: janedoe
---
{% assign person = site.data.people[page.person] %}
<div>
<img src="{{ person.image }}" alt="{{ person.name }}">
</div>
<div>
<p>{{ person.name }}</p>
<p>{{ person.title }}</p>
</div>
My question - given the people.yml file above, how can I make a reusable include that works in either a for loop or with a single record from people.yml passed in through front matter as in the examples above?
1 回答
循环:
注意我们只是将有用的部分(人[1])分配给人 .
_includes/person-card.html
包括:简的页面:
_layouts/person.html
布局: