我建立了一个 Jekyll 网站,对于帖子,我有 3 个子类别。
这些类别是:博客例子技巧
在这些类别中的每一个中,我还有html,css和js的子类别。
在每篇帖子中,我都有前言和一个类别标签,如下所示:
类别:-博客
-.html
我想创建一个循环来输出每个类别的帖子计数。因此,如果在博客下,我在每个子类别中有 2 个帖子:
- 博客
- .HTML
- html-post1.md
- html-post2.md
- .css
- css-post1.md
- css-post2.md
- .js
- js-post1.md
- js-post2.md
我怎样才能循环到只显示计数而不是输出每个帖子?
您可以像这样直接遍历您网站的类别:
<ul>
{% for cat in site.categories %}
<li>{{ cat[0] }} ({{ cat[1].size }})</li>
{% endfor %}
</ul>
cat[0]
是类别的名称。
cat[1]
是具有该类别的所有帖子的数组,因此帖子数量cat[1].size
。
生成的 HTML 将如下所示:
<ul>
<li>HTML (2)</li>
<li>css (2)</li>
<li>js (2)</li>
</ul>
请注意,默认情况下,类别列表是无序的。
如果要按名称或帖子计数对其进行排序,则解决方案稍微复杂一些。
对于每个类别,您可以包含如下计数:
{% assign total = 0 %}
{% for post in site.posts %}
{% if post.category == "some_category" %}
{% assign total = total | plus: 1 %}
{% endif %}
{% endfor %}