我想根据传递过滤器的页数组织一个页面。
我试图将truthy页面附加到集合中,但它不起作用。
{% assign homepage_posts = [] %}
{% for my_page in site.pages %}
{% if my_page.homepage %}
{% assign homepage_posts = homepage_posts | concat: [my_page] %}
{% endif %}
{% endfor %}
<h1>size{{homepage_posts.size}}</h1>
<h1>{{homepage_posts}}</h1>
这不起作用。 concat只能用于字符串吗?
答案 0 :(得分:2)
Jekyll很快会使用Liquid 4。但是,目前还没有concat
。
在您的情况下,您可以:
创建一个空数组(括号表示法在液体中不起作用):{% assign homepage_posts = "" | split:"/" %}
{{ homepage_posts | inspect }}
- &gt;输出:[]
并推送其中的元素:
{% for my_page in site.pages %}
{% if my_page.homepage %}
{% assign homepage_posts = homepage_posts | push: mypage %}
{% endif %}
{% endfor %}
{{ homepage_posts | inspect }}
答案 1 :(得分:0)
concat
过滤器仅适用于数组,并且在升级到Liquid 4时可在Jekyll中使用。*:
的concat
将数组与另一个数组连接(组合)。所结果的 array包含原始数组的所有元素。 concat会 除非你,否则不要从连接数组中删除重复的条目 也使用uniq过滤器。
要过滤包含特定属性的网页(在本例中为homepage: true
),您可以使用where
过滤器。
有一个前面的页面:
---
homepage: true
---
然后,您可以拥有homepage: true
属性的网页,如:
{% assign homepages = site.pages | where:"homepage","true" %}