杰基尔:列出所有类别,但有一个限制突破了限制

时间:2017-02-21 11:01:03

标签: jekyll

我正在尝试输出一个帖子标题列表,其中包含所有类别中的5个最新帖子但是一个。它适用于过滤,遗憾的是,它会考虑到限制所排除的帖子。有没有简单的方法可以不计算被排除的帖子?

{% for post in site.posts limit: 5 %}
    {% if post.category == "news" %}
    //Do nothing
    {% else if %}
        {{ post.title }}
    {% endif %}
{% endfor %}

2 个答案:

答案 0 :(得分:2)

要限制过滤的帖子,您需要先过滤它们。

我们创建了一系列不包含news类别的帖子:

{% assign no_news = "" | split: "" %}
{% for post in site.posts %}
{% unless post.categories contains 'news' %}
{% assign no_news = no_news | push: post %}
{% endunless %}
{% endfor %}

现在我们将这个新的数组限制迭代遍历5:

{% for post in no_news limit: 5 %}
        {{ post.title }} - {{post.categories}}
{% endfor %}

它将输出5个不包含news类别的帖子。

答案 1 :(得分:0)

你应该能够先分配帖子,然后再打电话给他们:

{% assign relevant = site.posts | except:"category","news" %}
{% for posts in relevant limit:5 %}
  {{ post.title }}
{% endfor %}

更多信息:https://github.com/jekyll/jekyll/issues/2018