[英]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"=>"Dallas", "description"=>"Big City in Texas"},
{"name"=>"Houston", "description"=>"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.