在Jekyll 2.5.3中,我使用albums
collection(因为我不仅需要存储数据,还需要生成的页面)。
使用Jekyll Data Files时,您可以像以下这样简单地获取特定项目的数据:site.data.albums[foo]
但是有了收藏,情况就更糟了。我尝试过的所有这些方法无济于事:site.albums[foo]
site.collections.albums[foo]
site.collections.albums.docs[foo]
site.collections.albums.files[foo]
所以我需要:
遍历所有收集项目
对于每个人get a bare name
将此名称与目标名称进行比较
如果名称匹配,最后将收集项数据分配给某个变量以使用
还有更好的建议吗?
最佳答案
我今天刚刚这样做,您的主张是正确的。这是我的做法:
<!-- this is in a partial with a 'name' parameter -->
{% for item in site.albums %}
{% assign name = item.path | split:"/" | last | split:"." | first %}
{% if name == include.name %}
{% assign collectionItem = item %}
{% endif %}
{% endfor %}
用法
{{ collectionItem.title }}
{{ collectionItem.url }}
{{ collectionItem.path }}
它甚至可以用来填充其他部分中的值,如下所示:
{% include card.html title=workItem.title bg=workItem.card.bg href=workItem.url %}