2017-02-26 31 views
0

我想根據通過過濾器的頁面數來組織一個頁面。jekyll在循環中分配concat?

我試圖追加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

Jekyll很快就會使用Liquid 4。但是,現在,沒有concat

在您的情況,您可以:

創建一個空數組(括號標記不工作液):{% assign homepage_posts = "" | split:"/" %}

{{ homepage_posts | inspect }} - >輸出:[]

,並在其中的滑動元件:

{% for my_page in site.pages %} 
    {% if my_page.homepage %} 
    {% assign homepage_posts = homepage_posts | push: mypage %} 
    {% endif %} 
{% endfor %} 

{{ homepage_posts | inspect }} 
+0

液體3. *已經有一個'concat'過濾器,它是爲陣列。 – marcanuy

+0

我在那裏看不到它https://github.com/Shopify/liquid/blob/v3.0.6/lib/liquid/standardfilters.rb。 –

+0

但在4中,是的:https://github.com/Shopify/liquid/blob/v4.0.0.rc1/lib/liquid/standardfilters.rb –

0

concat過濾器僅適用於數組,並將可用在化身當升級到液體4 *:

的concat

連接(合併)與另一陣列的陣列。生成的 數組包含原始數組的所有元素。 concat將 不刪除連接數組中的重複項,除非 也使用uniq過濾器。

過濾含有特定屬性(在這種情況下homepage: true),您可以使用where過濾器頁面。

經與前面的問題的頁面:

--- 
homepage: true 
--- 

然後你就可以擁有與homepage: true屬性,如網頁:

{% assign homepages = site.pages | where:"homepage","true" %}