Активировать class=active для archives.html в pelican

Я пытаюсь настроить свою собственную тему в pelican и столкнулся с проблемой, как получить набор class="active", если загрузить страницу архивов. Вот что у меня есть до сих пор:

{% if DISPLAY_PAGES_ON_MENU -%}
<ul class="nav nav-pills nav-stacked">
  {% for pg in PAGES %}
    <li {% if pg == page %}class="active"{% endif %}><a href="{{ SITEURL }}/{{ pg.url }}">{{ pg.title }} {{SITEURL}}</a></li>
  {% endfor %}
  <li {% if url == "/archives.html" %}class="active"{% endif %}><a href="{{ SITEURL }}/archives.html">Archives</a></li>
</ul>
{% endif %}

Этот фрагмент пока работает для pg-loop. Но я не могу понять, кому активировать класс при посещении archives.html. Кто-нибудь знает, как это можно сделать?

Кроме того, поскольку я новичок в Jinja2 и pelican, я не нашел документации, какие переменные доступны для использования.

Спасибо за вашу помощь.


person Dominik    schedule 27.04.2015    source источник


Ответы (1)


Общая тактика, которую я использовал в прошлом, заключается в том, чтобы распечатать page_name, поместив его куда-нибудь в шаблон base.html:

{{page_name}}

Затем я использую оператор if на основе отображаемого page_name.

{% if page_name = "Archive" %} X {% endif %}

Кроме того, здесь есть достаточно полезная документация: http://docs.getpelican.com/en/3.5.0/themes.html#templates-and-variables

person Brandon Bertelsen    schedule 27.04.2015
comment
На самом деле мне пришлось использовать {% if page_name == "archives" %}class="active"{% endif %}, и мне не нужен был {{page_name}} в базовом шаблоне... - person Dominik; 28.04.2015
comment
Да, размещение {{page_name}} в базовом шаблоне является временным и только для определения того, что на самом деле представляет собой page_name, чтобы вы могли создать свою логику. Рад, что это сработало для вас. - person Brandon Bertelsen; 28.04.2015