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

时间:2018-12-25 13:59:51

标签: collections jekyll liquid

是否可以检查当前页面是否属于某个集合?如果是这样,我可以检查收藏的标签是什么吗?

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

如果我的问题变得愚蠢–请原谅,我是jekyll的新手,我真的想自己找出答案。

2 个答案:

答案 0 :(得分:3)

任何收集文档都有一个protocol APIClient { var session: URLSession { get } func call<T: Codable>(route: EndPointType, completion: @escaping (Result<T>) -> Void) -> Void func cancel() -> Void } extension APIClient { var session: URLSession { return URLSession.shared } func call<T: Codable>(route: EndPointType, completion: @escaping (Result<T>) -> Void) -> Void { do { let request = try constructRequest(from: route) execute(with: request, completion: completion) } catch { print("something went wrong....") } }} 变量,它是收集标签。

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

page.collection

答案 1 :(得分:2)

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