在 Jekyll 中使用 'Where' 过滤器仅过滤 return 非空白的项目
Using a 'Where' filter in Jekyll to only return items that are not blank
我有一个包含项目列表的 CSV 数据文件。我想将变量分配给过滤后的数据段 - 然后循环遍历它们。
在这里,我尝试过滤所有项目以仅显示已在 global_priority
字段中分配了值的项目。如果该项目没有价值,我不会在列表中列出它。
我试过使用 where_exp
,但它 returns 一切。解决这个问题的最佳方法是什么?是否可以在不使用 if
语句的情况下实现此目的?
projects.csv
name,global_priority,region,region_priority
Project A,1,Global,
Project B,,Spain,1
Project C,2,UK,1
循环
{% assign projects = site.data.projects %}
{% assign global_p = projects | where_exp: "item.global_priority", "item.global_priority != blank" %}
{% for p in global_p %}
<ul>
<li>{{ p.global_priority }}</li>
<li>{{ p.region }}</li>
<li>{{ p.name }}</li>
</ul>
{% endfor %}
您访问where_exp
项目的方式有一个小错误,它应该指的是您将在比较中使用的名称:where_exp: "item"
然后:
{% assign global_p = site.data.projects | where_exp: "item", "item.global_priority" %}
{% for p in global_p %}
<ul>
<li>{{ p.global_priority }}</li>
<li>{{ p.region }}</li>
<li>{{ p.name }}</li>
</ul>
{% endfor %}
输出:
<ul>
<li>1</li>
<li>Global</li>
<li>Project A</li>
</ul>
<ul>
<li>2</li>
<li>UK</li>
<li>Project C</li>
</ul>
我有一个包含项目列表的 CSV 数据文件。我想将变量分配给过滤后的数据段 - 然后循环遍历它们。
在这里,我尝试过滤所有项目以仅显示已在 global_priority
字段中分配了值的项目。如果该项目没有价值,我不会在列表中列出它。
我试过使用 where_exp
,但它 returns 一切。解决这个问题的最佳方法是什么?是否可以在不使用 if
语句的情况下实现此目的?
projects.csv
name,global_priority,region,region_priority
Project A,1,Global,
Project B,,Spain,1
Project C,2,UK,1
循环
{% assign projects = site.data.projects %}
{% assign global_p = projects | where_exp: "item.global_priority", "item.global_priority != blank" %}
{% for p in global_p %}
<ul>
<li>{{ p.global_priority }}</li>
<li>{{ p.region }}</li>
<li>{{ p.name }}</li>
</ul>
{% endfor %}
您访问where_exp
项目的方式有一个小错误,它应该指的是您将在比较中使用的名称:where_exp: "item"
然后:
{% assign global_p = site.data.projects | where_exp: "item", "item.global_priority" %}
{% for p in global_p %}
<ul>
<li>{{ p.global_priority }}</li>
<li>{{ p.region }}</li>
<li>{{ p.name }}</li>
</ul>
{% endfor %}
输出:
<ul>
<li>1</li>
<li>Global</li>
<li>Project A</li>
</ul>
<ul>
<li>2</li>
<li>UK</li>
<li>Project C</li>
</ul>