我正在使用jekyll静态网站构建器,我正在使用 难以执行以下操作:
{% for category in site.categories %}
<h2 id = "{{ category[0] }}"> {{ category[0] }} </h2>
{% for post in site.categories[{{ category }}] %}
<li> <a href="{{ post.url }}"> {{ post.title }}</a></li>
{% endfor %}
<a href="#{{ category[0] }}-ref">↩</a>
{% endfor %}
我在我的jekyll网站上有一个名为'test'的帖子类别,我可以 使用以下内容显示帖子:
{% for post in site.categories.test %}
<li> <a href="{{ post.url }}"> {{ post.title }}</a></li>
{% endfor %}
但是,我想按顺序自动构建存档页面 要做到这一点,我需要从外部循环(循环中)嵌入类别 访问所有类别),并在内部循环中使用它 访问该特定类别的帖子。我需要做什么才能得到 我想要的第一个片段是什么?
编辑:或者,是否有其他方法可以获得我想要的结果?
答案 0 :(得分:14)
执行for category in site.categories
时,
category[0]
会为您提供类别名称category[1]
会为您提供该类别的帖子列表。这就是Liquid处理哈希迭代的方式,我相信。
所以你要找的代码就是这个:
{% for category in site.categories %}
<h2 id="{{ category[0] }}-ref">{{ category[0] }}</h2>
<ul>
{% for post in category[1] %}
<li><a href="{{ post.url }}">{{ post.title }}</a></li>
{% endfor %}
</ul>
<p><a href="#{{ category[0] }}-ref">↩</a></p>
{% endfor %}
我冒昧地修复了一些标记问题 - 我在帖子链接列表周围添加了<ul>...</ul>
,在最后一个链接周围添加了<p>
,在{{1}后面添加了一个分号}},并修复了8617
在顶部(缺少id
部分)。
问候!
答案 1 :(得分:1)
怎么样......
{% for category in site.categories %}
<h2 id = "{{ category[0] }}"> {{ category[0] }} </h2>
<ul>
{% for post in site.posts %}
{% if post.category == category[0] %}
<li> <a href="{{ post.url }}"> {{ post.title }}</a></li>
{% endif %}
{% endfor %}
</ul>
<a href="#{{ category[0] }}-ref">↩</a>
{% endfor %}
当然,效率非常低,会产生一堆额外的空白,但它可以完成任务。
[原来错过了标签。刚添加它们。此外,为了获得空白,可以将for post in site.posts
到endfor
之间的所有内容合并为一行。]
答案 2 :(得分:0)
{% for post in site.categories.category %}
- OR -
{% for post in site.categories.category[0] %}
另外,我不确定为什么kshep的例子不起作用......