簡體   English   中英

Jekyll液體陣列ID不起作用

[英]Jekyll Liquid Array ID Not Working

我的_data文件夾中有一個CSV文件,我試圖指定要訪問的CSV行在“前事宜”中,然后根據“前事宜”中指定的行從CSV返回特定列。

這是CSV文件:

name,description
Dallas,Big City in Texas

這是我的index.html文件的內容:

---
city: "Dallas"
---

{{ site.data.data[page.city].description }}

在使用數據文件的Jekyll Docs頁面上,我應該能夠使用這種語法以這種方式訪問​​數據文件,但是編譯的html文件不包含任何數據。

我已經測試了訪問CSV文件內容的其他方法以及這些方法的工作,因此,看來數據文件或網站本身不是問題,而是使用[ ]數組id Liquid語法。

似乎您誤解了[]哈希結構表示法。 首先,我將指導您如何使用[]

data.csv擴展一下data.csv

name,description
Dallas,Big City in Texas
Houston,Another City in Texas

並“檢查”從上述CSV文件獲得的數據對象,

{{ site.data.data | inspect }}

在構建站點時,您會看到生成的對象只是一個哈希數組

<p>
  [
    {"name"=&gt;"Dallas", "description"=&gt;"Big City in Texas"}, 
    {"name"=&gt;"Houston", "description"=&gt;"Another City in Texas"}
  ]
</p>

這意味着您只能通過引用其索引號來訪問各個哈希條目。

{{ site.data.data[0] }}將給您第一個哈希,而{{ site.data.data[1] }}將給您下一個哈希。

因此{{ site.data.data[0].description }}將為您帶來預期的結果:

<p>
  Big City in Texas
</p>

現在您知道[]如何處理數據散列,讓我們簡單地找到解決方案。

要訪問Array中的元素,可以簡單地遍歷Array對象並引用必要的條目:

{% for entry in site.data.data %}
  <div>
    <span>{{ entry.name }}</span> : <span>{{ entry.description }}</span>
  </div>
{% endfor %}

會給你:

<div>
  <span>Dallas</span>
  <span>Big City in Texas</span>
</div>
<div>
  <span>Houston</span>
  <span>Another City in Texas</span>
</div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM