Петля через отфильтрованную коллекцию в jekyll
Я стараюсь делать такие вещи в моем сообщении:
<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>
но он все-таки перебирает всю мою коллекцию, а не только записи петель с особой группой.
Ответы
Ответ 1
Вы не можете использовать фильтр в цикле.
Но вы можете сделать:
{% 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>
Ответ 2
В соответствии с жидкостной документацией об фильтрах они должны использоваться внутри выходных тегов {{
и }}
.
Возможно, вы можете попробовать оператор if:
{% for post in site.posts %}
{% if post.group == 'group' %}
<div data-scroll-reveal="enter ease 0">
{% include article-snippet.html %}
</div>
{% endif %}
{% endfor %}
Также вы должны использовать фильтр немного по-другому. Что-то вроде этого:
{{ site.members | where:"graduation_year","2014" }}
Это говорит о выборе членов сайта, выпуск которых равен 2014. Вам не нужно указывать, что он должен фильтровать элементы, первая часть неявно заявляет, что.