如何使用 Jekyll 从 CSV 访问特定行?
How to access specific row from CSV with Jekyll?
我正在使用 Jekyll [2.5.3] 构建原型,需要访问我布局中 _data
中文件的特定行。
在文件 _data/badges.csv
我有:
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
中,我试图通过将值传递给 site.data
来访问 badges.csv
中的 Zoning
行,如下所示:
{% assign badge = site.data.badges.name["Zoning"] %}
{{ badge.image_url }}
最终我会["Zoning"]
一个页面变量来加载基于页面的特定徽章。
我试过 [Zoning]
、['Zoning']
、["Zoning"]
。 None 其中输出任何数据并且在 jekyll build
期间不抛出错误。
如何访问 CSV 中的特定行?
我认为 CSV 文件被视为数组而不是地图。如果您想在 CSV 文件中查找特定条目,您可以这样做:
{% for badge in site.data.badges %}
{% if badge.name == "Zoning" %}
{{ badge.image_url }}
{% endif %}
{% endfor %}
然后您可以将其移至 _includes
并传递参数以重用该功能:
_includes/徽章-url.html
{% for badge in site.data.badges %}
{% if badge.name == include.name %}
{{ badge.image_url }}
{% endif %}
{% endfor %}
包括分区
{% include badge-url.html name="Zoning" %}
Jekyll 4.2 引入了 find
liquid tag 这对这个很有帮助。
例如,_data/people.csv
处的 CSV 文件格式类似于:
name, slug, title
Jane Doe, jane-doe, VP of Stuff
你可以这样做:
{% assign person = site.data.people | find:"slug","jane-doe" %}
{{ person.name }}
将从 CSV 中打印出他们的名字。
我正在使用 Jekyll [2.5.3] 构建原型,需要访问我布局中 _data
中文件的特定行。
在文件 _data/badges.csv
我有:
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
中,我试图通过将值传递给 site.data
来访问 badges.csv
中的 Zoning
行,如下所示:
{% assign badge = site.data.badges.name["Zoning"] %}
{{ badge.image_url }}
最终我会["Zoning"]
一个页面变量来加载基于页面的特定徽章。
我试过 [Zoning]
、['Zoning']
、["Zoning"]
。 None 其中输出任何数据并且在 jekyll build
期间不抛出错误。
如何访问 CSV 中的特定行?
我认为 CSV 文件被视为数组而不是地图。如果您想在 CSV 文件中查找特定条目,您可以这样做:
{% for badge in site.data.badges %}
{% if badge.name == "Zoning" %}
{{ badge.image_url }}
{% endif %}
{% endfor %}
然后您可以将其移至 _includes
并传递参数以重用该功能:
_includes/徽章-url.html
{% for badge in site.data.badges %}
{% if badge.name == include.name %}
{{ badge.image_url }}
{% endif %}
{% endfor %}
包括分区
{% include badge-url.html name="Zoning" %}
Jekyll 4.2 引入了 find
liquid tag 这对这个很有帮助。
例如,_data/people.csv
处的 CSV 文件格式类似于:
name, slug, title
Jane Doe, jane-doe, VP of Stuff
你可以这样做:
{% assign person = site.data.people | find:"slug","jane-doe" %}
{{ person.name }}
将从 CSV 中打印出他们的名字。