Jekyll 显示子类别的帖子计数



我建立了一个 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 %}

最新更新