Jekyll – 检查页面是否属于 collection

Jekyll – Check if page belongs to a collection

有没有办法检查当前页面是否属于 collection?如果是这样,我可以检查一下 collection 的标签是什么吗?

背景故事: 我想要实现的是为属于 collection 的所有页面显示不同的布局。有了这个新布局,我想显示一个侧面导航(某种“另见”),其中列出了当前站点所属的 collection 中的所有页面。

如果我的问题被证明是愚蠢的——请原谅我,我是 jekyll 的新手,我真的试图自己找出答案。

任何集合文档都有一个 page.collection 变量,它是集合标签。

但是,如果您想将特定布局与集合相关联,您可以使用 default configuration

defaults:
  -
    scope:
      type: mycollection
    values:
      layout: a_custom_layout
      anyvar: a_custom_var

page.collection returns文档所属集合的标签。所以我想你想做这样的事情:

{% if page.collection == 'COLLECTION_LABEL' %}
NEW LAYOUT
{% else %}
OLD LAYOUT
{% endif %}

要访问集合中的页面,您可以使用带有 site.COLLECTION_LABELsite[COLLECTION_LABEL] 的标签(如果它是变量,则需要 [])。类似于:

{% for page in site[page.collection] %}
<a href="{{ page.url }}">{{ page.title }}</a>
{% endfor %}