【问题标题】:Iterate over subcategories in Jekyll迭代 Jekyll 中的子类别
【发布时间】:2013-10-27 03:26:47
【问题描述】:

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

Dinner:
* Spaguetti
* Meatloaf

Breakfast
* Cheerios
* Oatmeal

Lunch
* BLT

【问题讨论】:

  • schmmd,您找到解决方案了吗?发回此处,以便其他人可以看到您的问题的答案。也许最新的 Jekyll 让这变得更容易了。

标签: ruby jekyll


【解决方案1】:

就像很多 Jekyll 的工作一样,答案是循环遍历的方式比你想象的要多:)

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

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

这里有一些代码可以用于标签,我想如果你用categories 替换tags,它的工作原理是一样的。我在自己的网站上稍作修改,如果有一两个错字,请见谅:

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

【讨论】:

  • 我尝试对多个子类别采用这种方法,但它似乎一次只针对一个类别。我已经问了一个后续问题here,如果您想查看的话。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-03
  • 2018-07-09
  • 2017-02-25
  • 2014-01-19
  • 2018-07-31
  • 2015-08-03
  • 1970-01-01
相关资源
最近更新 更多