在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 %}

08-27 21:36
查看更多