我有一系列项目。每个项目的一部分是参与该项目的人员列表:
---
layout: project
name: Important Project
participants:
- name: julia
role: owner
- name: paul
role: manager
- name: chris
role: implementer
---
这些人中的每一个都在自己的收藏中,并且有一个页面列出了他们的详细信息。我想要包括他们一直在努力的项目以及他们的角色。这是我的最大努力但不起作用:
{% for project in site.projects %}
{% if project.participants['name'] == {{ page.name }} %}
<p>{{ project.name }} - {{ project.participants['role'] }}</p>
{% endif %}
{% endfor %}
欢迎提出任何建议。
答案 0 :(得分:3)
假设这个结构:
# _config.yml
collections:
- people
- projects
然后目录结构如:
_projects/project1.md
_people/person1.md
_people/person2.md
使用person1.md前面的内容,如:
---
name: julia
---
您提供的上述事项,这是如何显示每个人的项目和角色列表:
{% for person in site.people %}
Person {{person.name}}
{% for project in site.projects%}
{% assign person_project = project.participants | where:"name",person.name | first %}
Project: {{project.name}}
Role: {{person_project.role}}
{% endfor %}
{% endfor %}
然后输出如下:
Person julia
Project: Important Project
Role: owner
然后您可以根据需要改进输出,例如使用表格:
{% for person in site.people %}
<table>
<caption>{{person.name}} projects</caption>
<tr>
<th>Project</th>
<th>Role</th>
</tr>
{% for project in site.projects%}
{% assign person_project = project.participants | where:"name",person.name | first %}
<tr>
<td>{{project.name}}</td>
<td>{{person_project.role}}</td>
</tr>
{% endfor %}
</table>
{% endfor %}
输出:
julia projects
Project Role
Important Project owner
答案 1 :(得分:1)
我想你的参与者项目看起来像这样:
---
short: julia
firstname: Julia
lastname: Last
layout: participant
---
Content
在您的参与者布局中,您可以:
<h2>Participant : {{ page.firstname }} {{ page.lastname }}</h2>
{{ content }}
<h2>Projects :</h2>
<ul>
{% for project in site.projects %}
{% for participant in project.participants %}
{% if participant.name == page.short %}
<li>{{ participant.role }} in <a href="{{ site.baseurl }}{{ project.url }}">{{ project.name }}</a></li>
{% endif %}
{% endfor %}
{% endfor %}
</ul>
参与者