2017-05-30 43 views
2

我有一個數據文件,其中包含我想要在Jekyll中使用指定索引的對象。如何在Jekyll中使用變量作爲數組索引包括

我的頁面調用包括像這樣:

{% include components/header-filter.html items="0" %} 

哪裏0是我想在這種情況下使用索引。

我include是:

{% assign filterID = include.items %} 
{% capture id %}{{ filterID }}{% endcapture %} 
{% assign filter = site.data.filters[id] %} 

這工作,直到它到達3號線,此時它什麼也不輸出。

我在做什麼錯?

乾杯!

回答

1

我能得到這個有以下變化工作:

  1. 調用包括與items爲整數的字符串:

    {% include components/header-filter.html items=0 %} 
    

    (注意,這裏假設你有沒有路徑問題與包含的位置。本地運行jekyll它堅持我把它放在/_inlcudes

  2. 刪除capture線,只是通過filterID到下一行 - 這是不需要的,並可能導致一個問題:

    {% assign filterID = include.items %} 
    {% assign filter = site.data.filters[filterID] %} 
    
  3. 然後到您的評論「它什麼也不輸出」,你需要的東西輸出(可能是剛剛從你的示例中省略,但爲了完整,讓我們假設filters已經備案的叫name):

    {{ filter.name }} 
    
+0

感謝您的幫助!這是第一個問題,當我只想要數字時,它將0當作字符串處理。 – privatemachine

1

您可以通過「切割出中間人」 {%使這個INC。 lude components/header-filter.html items = 0%}

{% assign filter = site.data.filters[include.items] %} 

你沒有工作的原因是因爲捕獲將它轉換成字符串。您可以使用數學過濾器將字符串轉換爲整數。例如: {% assign id = id | plus: 0 %}它的值不會改變,但液體現在將其視爲整數。

或者,您可以通過省略引號將其稱爲整數。 {% include components/header-filter.html items=0 %}

+0

啊,這就是它!它將「0」作爲一個字符串處理。謝謝你的幫助! – privatemachine