来自数据文件的可重复使用的 Jekyll 部分
Reusable Jekyll parts from data file
继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"}
我得到了这些信息,我着手制作一个人-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>
在具有访问数据文件的循环的页面上,它有效。相反,如果我将它与从 front matter 传入的人一起使用,则它不起作用,因为必须删除索引。将其更改为有效:
---
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>
我的问题 - 鉴于上面的 people.yml 文件,我如何制作一个可重复使用的包含,它可以在 for 循环中工作,也可以使用传入的 people.yml 中的单个记录像上面的例子一样通过前面的内容?
循环:
{% for people in site.data.people %}
{% assign person = people[1] %}
{% include person-card.html %}
{% endfor %}
请注意,我们只是将有用的部分 (people[1]) 分配给了 person。
_includes/person-card.html
包括:
<div>
<img src="{{ person.image }}" alt="{{ person.name }}">
</div>
<div>
<p>{{ person.name }}</p>
<p>{{ person.title }}</p>
</div>
简的页面:
---
layout: person
person: janedoe
---
_layouts/person.html
布局:
---
layout: default
---
{% assign person = site.data.people[page.person] %}
{% include person-card.html %}
继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"}
我得到了这些信息,我着手制作一个人-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>
在具有访问数据文件的循环的页面上,它有效。相反,如果我将它与从 front matter 传入的人一起使用,则它不起作用,因为必须删除索引。将其更改为有效:
---
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>
我的问题 - 鉴于上面的 people.yml 文件,我如何制作一个可重复使用的包含,它可以在 for 循环中工作,也可以使用传入的 people.yml 中的单个记录像上面的例子一样通过前面的内容?
循环:
{% for people in site.data.people %}
{% assign person = people[1] %}
{% include person-card.html %}
{% endfor %}
请注意,我们只是将有用的部分 (people[1]) 分配给了 person。
_includes/person-card.html
包括:
<div>
<img src="{{ person.image }}" alt="{{ person.name }}">
</div>
<div>
<p>{{ person.name }}</p>
<p>{{ person.title }}</p>
</div>
简的页面:
---
layout: person
person: janedoe
---
_layouts/person.html
布局:
---
layout: default
---
{% assign person = site.data.people[page.person] %}
{% include person-card.html %}