2017-02-26 4 views
0

フィルタを通過するページ数に基づいてページを整理したいと思います。jekyllはループ内で連結を割り当てますか?

私はコレクションに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> 

これは機能しません。コンカットは文字列でのみ動作しますか?

答えて

0

ジキルはすぐに液体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'フィルタでいます

--- homepage: true --- 

は次に、あなたのようなhomepage: true属性を持つページを持つことができます。

フロント物質とページを持ちます配列の場合 – 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 もuniqフィルタを使用しない限り、連結配列から重複エントリを削除しません。

特定の属性(この場合はhomepage: true)を含むページをフィルタリングするには、whereフィルタを使用できます。

{% assign homepages = site.pages | where:"homepage","true" %} 
関連する問題