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”循环检查此项,但是,我想提前知道是否有带有演示的论文。请看更新后的问题。我的目标是,只有在有一篇或多篇论文附有演示的情况下,才会显示标题“演示”。如果我在循环过程中检查条件,我无法预先知道是否会有任何带有演示的纸张,因此我可能会打印标题,即使它不需要…在我显示的更新示例中,当值为空时,不会打印任何内容。