如何 select Jekyll 集合的特定元素
How to select specific elements of a Jekyll collection
我正在尝试 select 从 Jekyll 的集合中提取一些特定的项目。我设法使用以下代码做到了这一点:
{% for paper in site.papers %}
{% if paper.paper-id == "Trott2010" %}
[{{ paper.title }}]({{ paper.url }})
{% endif %}
{% endfor %}
但一点也不优雅。环顾四周,我发现了这个 ,答案似乎正是我需要的:
{% assign paper = site.papers | where:"Trott2010", page.paper-id | first %}
如果我每页只使用一次,这将按预期工作。不幸的是,如果我想得到不止一张纸 prom site.papers
(将它分配给具有不同名称的变量),它不起作用,我真的不明白。如果我使用
{% assign paper1 = site.papers | where:"Trott2010", page.paper-id | first %}
[{{ paper1.title }}]({{ paper1.url }})
{% assign paper2 = site.papers | where:"Scousa2013", page.paper-id | first %}
[{{ paper2.title }}]({{ paper2.url }})
两个实例的输出完全相同。
感谢任何帮助。
where
选择数组中键具有给定值 (array | where: "key", "value"
) 的所有对象。所以在你的情况下应该是:
{% assign paper1 = site.papers | where: "paper-id", "Trott2010" | first %}
[{{ paper1.title }}]({{ paper1.url }})
{% assign paper2 = site.papers | where:"paper-id", "Scousa2013" | first %}
[{{ paper2.title }}]({{ paper2.url }})
我正在尝试 select 从 Jekyll 的集合中提取一些特定的项目。我设法使用以下代码做到了这一点:
{% for paper in site.papers %}
{% if paper.paper-id == "Trott2010" %}
[{{ paper.title }}]({{ paper.url }})
{% endif %}
{% endfor %}
但一点也不优雅。环顾四周,我发现了这个
{% assign paper = site.papers | where:"Trott2010", page.paper-id | first %}
如果我每页只使用一次,这将按预期工作。不幸的是,如果我想得到不止一张纸 prom site.papers
(将它分配给具有不同名称的变量),它不起作用,我真的不明白。如果我使用
{% assign paper1 = site.papers | where:"Trott2010", page.paper-id | first %}
[{{ paper1.title }}]({{ paper1.url }})
{% assign paper2 = site.papers | where:"Scousa2013", page.paper-id | first %}
[{{ paper2.title }}]({{ paper2.url }})
两个实例的输出完全相同。
感谢任何帮助。
where
选择数组中键具有给定值 (array | where: "key", "value"
) 的所有对象。所以在你的情况下应该是:
{% assign paper1 = site.papers | where: "paper-id", "Trott2010" | first %}
[{{ paper1.title }}]({{ paper1.url }})
{% assign paper2 = site.papers | where:"paper-id", "Scousa2013" | first %}
[{{ paper2.title }}]({{ paper2.url }})