Jekyll 如何在某个字段不为空的所有项目上循环?
我想循环遍历集合中具有特定字段集(非空)的所有项。我试过这个:Jekyll 如何在某个字段不为空的所有项目上循环?,jekyll,liquid,Jekyll,Liquid,我想循环遍历集合中具有特定字段集(非空)的所有项。我试过这个: {% assign papers_with_demos=site.data.papers | where:"demo", not blank %} {% if papers_with_demos.size > 0 %} <h2>demos</h2> {% for paper in papers_with_demos %}] ... {% endfor %} {% endif %
{% assign papers_with_demos=site.data.papers | where:"demo", not blank %}
{% if papers_with_demos.size > 0 %}
<h2>demos</h2>
{% for paper in papers_with_demos %}]
...
{% endfor %}
{% endif %}
{%assign papers_与_demos=site.data.papers|其中:“demo”,而非空白%}
{如果文件大小大于0%}
演示
{对于论文中的论文,{u有演示%}]
...
{%endfor%}
{%endif%}
但它不起作用;所有文件都已归还
我的目标是,只有当有一篇或多篇论文附有演示文稿时,标题“演示”才会显示。如果要退回论文,则必须使用数据文件。如果数据文件中某个特定键的值为空,它将返回false。因此,您可以使用forloop检查数据键,如:
{% for paper in site.data.papers %}
{% if paper.demo %}
something
{% endif %}
{% endfor %}
您可以在Jekyll文档的数据文件部分找到更多信息
根据您的回复更新:
{% for item in site.data.items %}
{% if item.random %}
{% assign random-val = item.random %}
{% if random-val %}
<p>true</p>
{% endif %}
{% endif %}
{% endfor %}
{site.data.items%中的项的%
{%if item.random%}
{%assign random val=item.random%}
{%if random val%}
真的
{%endif%}
{%endif%}
{%endfor%}
如果在items内,则返回true。yml,您有-random:true,如果为空,则返回nothing。好的,我知道我可以使用“for”循环检查此项,但是,我想提前知道是否有带有演示的论文。请看更新后的问题。我的目标是,只有在有一篇或多篇论文附有演示的情况下,才会显示标题“演示”。如果我在循环过程中检查条件,我无法预先知道是否会有任何带有演示的纸张,因此我可能会打印标题,即使它不需要…在我显示的更新示例中,当值为空时,不会打印任何内容。