17

我正在尝试用 jekyll 过滤一些帖子。我想输出所有类别的帖子:新闻。

当我这样做时它工作正常:

  {% for post in site.posts   %}
    {% if post.category[0] == "news" %}
      <h1>{{ post.title }}</h1>
  {% endfor %}

但我想将此过滤器的输出限制为多个帖子。如果我将 alimit: 5应用于我的for循环,则它不起作用,因为 Jekyll 将限制应用于帖子总数。

是否可以对已过滤的帖子列表应用限制,例如:

  {% for post in site.posts   %}
    {% if post.category[0] == "news" limit:5 %}
      <h1>{{ post.title }}</h1>
  {% endfor %}

我可以获取类别site.categories列表并列出它们

{% for category in site.categories %}
  <p>test: {{ category[0] }}</p>
{% endfor %}

但我似乎无法缩小到单一类别。我正在尝试做类似的事情:

for post in site.categories.news limit:5
  //do something
endfor

或者

for post in site.categories['news'] limit:5
  //do something
endfor

但无济于事。是否可以通过这种方式过滤类别?

4

2 回答 2

45

我设法解决它。

在浏览了 jekyll bottstrap 文档后,我无法通过在所有新闻页面上site.categories.news 添加一个来访问过滤后的帖子列表。tag: news

我现在可以过滤和限制帖子的输出:

  {% for post in site.tags.news limit:2  %}
    //do something
  {% endfor %}
于 2012-09-29T22:57:26.157 回答
4

我的代码可以正常工作。看起来他们自 2012 年以来在某个地方修复了它。

{% for post in site.categories.company limit: 1 %}
  ...
{% endfor %}
于 2013-09-26T22:40:34.643 回答