我试图使用where_exp根据两个类别使用or操作符过滤Jekyll页面:
{% assign sortedPages = site.pages | sort:"date" | reverse | where_exp:"page","page.categories contains 'design-pattern'" %}但我发现了一个错误:
期望end_of_string但找到管道
Ar or/and运算符真的支持吗?我不知道如何使用where_exp过滤页面,如我的代码片段所示。
发布于 2017-03-10 21:23:38
我设法解决了我的问题.这不是一个非常优雅的解决方案,但因为Jekyll并不是要创建实际的软件架构.就目前而言,它运行得完美无缺:
{% assign patterns = "" | split,"" %}
{% for page in site.pages %}
{% if page.categories contains "design-pattern" or page.categories contains "anti-pattern" %}
{% assign patterns = patterns | push:page %}
{% endif %}
{% endfor %}
{% assign sortedPages = patterns | sort:"date" | reverse %}发布于 2020-04-01 23:00:45
我无法复制您的原始问题中包含的错误消息。但是,就基于多个条件的过滤而言,支持。你也可以把你所有的过滤器放在一起。其结果是代码更加清晰。
示例
如果要设置一个名为"sortedPages“的变量,它等于"site.pages",但需要使用以下过滤器:
他们可以通过以下一条线来实现这一点:
{% assign sortedPages = site.pages | sort:"date" | reverse | where_exp: "item", "item.categories contains 'design-pattern' or item.categories contains 'anti-pattern'" %}回答为多行
还支持将语句拆分到多行。这样做有时可以提高可读性:
{%
assign sortedPages = site.pages
| sort:"date"
| reverse
| where_exp: "item", "item.categories contains 'design-pattern' or item.categories contains 'anti-pattern'"
%}https://stackoverflow.com/questions/42722902
复制相似问题