在Jekyll _data中创建类别?
问题描述:
我需要使用Jekyll中的_data来生成内容。在Jekyll _data中创建类别?
比方说,我想创建一个目录,显示阻止Twitter和Facebook的国家。我了解如何查询_data文件夹,但是如何在_data .yml中创建类似的内容并查询该数据?
让我试着解释。
Twitter的被封锁在土耳其&伊朗所以我想这个(在_data networks.yml)开始:
- network: Twitter
这是我卡住。我不明白的是,如果我愿意“标签”或“分类”微博是这样的:
- network: Twitter
blockedcountries: [Turkey, Iran, Iraq]
- network: Facebook
blockedcountries: [Iraq, Turkey]
然后我想在mysite.com/turkey/页面会显示标记的网络与火鸡。类似这样的:
{% for network in site.data.networks %}
{% if network.blockedcountries == Turkey %}
<li>{{ network.network }} is blocked in Turkey</li>
{% endif %}
{% endfor %}`
Which would display:
- Twitter is blocked in Turkey
- Facebook is blocked in Turkey
感谢任何帮助,并将提示比特币如果解决!
答
你的YAML是正确的。这个问题似乎是在你的if语句:
{% if network.blockedcountries == Turkey %}
network.blockedcountries是一个数组(列表),因此您的if语句需要是这样的:
{% if network.blockedcountries contains "Turkey" %}
<li>{{ network.network }} is blocked in Turkey</li>
{% endif %}
哲基尔使用液体标记语言的模板。你可以阅读更多关于它的可能性。也许liquid case statement也有助于进一步优化。
这里是我的 “全面” 解决方案:
我在_data/networks.yml
- name: Twitter
blockedcountries: [Turkey, Iraq, Iran]
- name: Facebook
blockedcountries: [Turkey, Iraq]
我的index.html中
<ul>
{% for network in site.data.networks %}
{% if network.blockedcountries contains "Turkey" %}
<li>{{ network.name }} is blocked in Turkey!</li>
{% endif %}
{% endfor %}
</ul>
液体模板数据