首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Jekyll访问CSV中的特定行?

如何使用Jekyll访问CSV中的特定行?
EN

Stack Overflow用户
提问于 2015-10-27 14:42:44
回答 2查看 955关注 0票数 4

我正在使用Jekyl2.5.3构建一个原型,并需要在我的布局中从_data文件中访问特定的行。

在文件_data/badges.csv中,我有:

代码语言:javascript
复制
name, image_url
Heat, http://pathtoimage.com/image-1.png
Water, http://pathtoimage.com/image-2.png
Zoning, http://pathtoimage.com/image-3.png
...

_layout/page.html中,我试图从badges.csv访问Zoning行,方法是向site.data传递一个值,如下所示:

代码语言:javascript
复制
{% assign badge = site.data.badges.name["Zoning"] %}
{{ badge.image_url }}

最后,我将使["Zoning"]成为一个页面变量,根据页面加载特定的徽章。

我试过[Zoning]['Zoning']["Zoning"]。这些都不会输出任何数据,并且不会在jekyll build期间抛出错误。

如何从CSV访问特定行?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-27 17:22:41

我相信CSV文件被视为数组而不是映射。如果您想在CSV中找到一个特定的条目,您可以这样做:

代码语言:javascript
复制
{% for badge in site.data.badges %}
  {% if badge.name == "Zoning" %}
    {{ badge.image_url }}
  {% endif %}
{% endfor %}

然后,您可以将其移到_includes中,并传递一个参数来重用该功能:

_includes/badge-url.html

代码语言:javascript
复制
{% for badge in site.data.badges %}
  {% if badge.name == include.name %}
    {{ badge.image_url }}
  {% endif %}
{% endfor %}

包括分区

代码语言:javascript
复制
{% include badge-url.html name="Zoning" %}
票数 4
EN

Stack Overflow用户

发布于 2020-12-08 22:59:56

Jekyl4.2引入了find 液体标签,这对此很有帮助。

例如,在_data/people.csv上使用CSV文件的格式类似于:

代码语言:javascript
复制
name, slug, title
Jane Doe, jane-doe, VP of Stuff

你可以这样做:

代码语言:javascript
复制
{% assign person = site.data.people | find:"slug","jane-doe" %}
{{ person.name }}

从CSV上打印出他们的名字。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33370965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档