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_LABEL
或 site[COLLECTION_LABEL]
的标签(如果它是变量,则需要 []
)。类似于:
{% for page in site[page.collection] %}
<a href="{{ page.url }}">{{ page.title }}</a>
{% endfor %}
有没有办法检查当前页面是否属于 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_LABEL
或 site[COLLECTION_LABEL]
的标签(如果它是变量,则需要 []
)。类似于:
{% for page in site[page.collection] %}
<a href="{{ page.url }}">{{ page.title }}</a>
{% endfor %}