在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> 
液体模板数据