繁体   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