Добавить активный класс на страницу архива выбранной категории в Jekyll
Я использую плагин категории-архива для моего проекта Jekyll. Я хочу иметь меню списка категорий для каждой страницы архива категорий, чтобы пользователь мог перемещаться между архивами разных категорий. Я хотел бы добавить class="active" к ссылке на список категорий для просматриваемой страницы архива категорий. У меня есть нечто подобное для навигации по сайту, сравнивая page.url с navitem.url, разница в том, что для nav сайта я указываю список navitem.urls в config.yml, а для архива категорий список имен категорий сгенерировано на основе категорий, указанных в самом сообщении, и у меня возникли проблемы с использованием {{ category | first }} переменная в операторе {% if %}, чтобы я мог либо проверить "==", либо "содержит"
Это то, что у меня есть на данный момент, но это не работает
<ul class="product-categories">
{% for category in site.categories %}
{% if page.url == {{ category | first }} %}
{% assign class = "active" %}
{% else %}
{% assign class = "" %}
{% endif %}
<li>
<a href="/{{ category | first }}/" class="{{ class }}">{{ category | first }}</a>
</li>
{% endfor %}
Пожалуйста, помогите =)
1 ответ
Переменная класса liquid находится внутри цикла for, поэтому при ее использовании вне области видимости она также должна быть "содержит" вместо ==, поскольку путь содержит больше символов, которых не будет в категории.
<ul class="product-categories">
{% assign class = "" %}
{% for category in site.categories %}
{% assign cat=category|first %}
{% if page.url contains cat %}
{% assign class = "active" %}
{% endif %}
<li>
<a href="/{{ category | first }}/" class="{{ class }}">{{ category | first }}</a>
</li>
{% endfor %}