Отображение коллекции Jekyll по категориям

Мне трудно понять, как сортировать содержимое коллекции по категориям. Я нашел очень похожий вопрос о том, как сортировать сообщения по категориям, но, похоже, не работает с коллекциями Jekyll постов по категориям.

Скажем, у меня есть коллекция под названием "автомобили" с двумя категориями: "старая" и "новая". Как я могу отображать только автомобили с категорией "старые"?

Ответ 1

Вы можете сортировать, группировать или фильтровать коллекцию, как любой другой объект, такой как страница или сообщения.

_my_collection/mustang.md

---
category: 'old'
abbrev: tang
---
mustang content

_my_collection/corvette.md

---
category: 'new'
abbrev: vet
---
corvette content

Фильтрация

{% assign newcars = site.my_collection | where: "category", "new" %}

Сортировка

{% assign allcarssorted = site.my_collection | sort: "category" %}

Группировка

{% assign groups = site.my_collection | group_by: "category" | sort: "name" %}

Это группирует ваши автомобили, а затем сортирует группы по названию, которое является категорией.

{% for group in groups %}
    {{ group.name }}
    {% for item in group.items %}
        {{item.abbrev}}
    {%endfor%}
{%endfor%}