在Jekyll中迭代子类别

时间:2013-10-27 03:26:48

标签: ruby jekyll

在Jekyll中,帖子可以有多个类别。例如,意大利面条的配方可能包含dinnerfood类别。是否有可能 - 没有插件 - 迭代一个类别(食物)的其他类别(不同的晚餐时间)?例如,我想为类别food生成以下页面:

Dinner:
* Spaguetti
* Meatloaf

Breakfast
* Cheerios
* Oatmeal

Lunch
* BLT

1 个答案:

答案 0 :(得分:0)

像许多杰基尔的作品一样,答案是以比你想象的更多的方式循环:)

只需遍历所有类别或标记或整个网站的任何内容,并使用if标记,以避免输出此帖子没有的标记。

然后在循环体内循环浏览您网站上的每个帖子,再次使用if标记,以避免输出那些没有该类别的标记。

以下是为代码执行此操作的一些代码,我认为如果将tags替换为categories,它的工作方式相同。我已经从我自己的网站上轻轻修改了它,对不起,如果有一两个错字:

{% for topic in site.tags | sort_by:topic order:ascending %}
    {% if topic == whatever_topic_you_have %}
        <section class="topic">
            <h1><a name="{{ topic }}">{{ topic }}</a></h1>
            {% for item in site.posts %}
                {% if item.tags contains topic %}
                    ...show your post/item here...
                {% endif %}
            {% endfor %}
        </section>
    {% endif %}
{% endfor %}