Jekyll – 检查页面是否属于集合



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

背景故事:我试图实现的是为属于集合的所有页面显示不同的布局。使用这种新布局,我想显示一个侧面导航(某种"另请参阅"),其中列出了当前站点所属集合中的所有页面。

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

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

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

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

但是,如果要将特定布局关联到集合,则可以使用默认配置:

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

最新更新