循环遍历jekyll中的过滤集合

时间:2014-08-03 10:21:12

标签: jekyll liquid github-pages

我尝试在我的帖子中做这样的事情:

<ul class="articles-list">
  {% for post in site.posts | where:'group', post.group %}
    <div data-scroll-reveal="enter ease 0">
      {% include article-snippet.html %}
    </div>
  {% endfor %}
</ul>

但它遍历我的所有集合,而不是唯一的循环帖子与特殊组。

2 个答案:

答案 0 :(得分:18)

您不能在循环中使用where过滤器。

但你可以这样做:

{% assign posts = site.posts | where:'group', post.group %}

<ul class="articles-list">
  {% for post in posts %}
    <div data-scroll-reveal="enter ease 0">
      {% include article-snippet.html %}
    </div>
  {% endfor %}
</ul>

答案 1 :(得分:2)

根据liquid documentation有关过滤器的说明,它们应在输出标记{{}}中使用。

您可以尝试使用if语句:

{% for post in site.posts %}
    {% if post.group == 'group' %}
        <div data-scroll-reveal="enter ease 0">
            {% include article-snippet.html %}
        </div>
    {% endif %}
{% endfor %}

此外,您应该使用where过滤器a bit differently。像这样:

{{ site.members | where:"graduation_year","2014" }}

这表示毕业网站成员的毕业年份是2014年。您不需要指定它应该过滤成员,第一部分隐含地说明了这一点。