2015-04-27 5 views
1

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

{% 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 и пеликан, я не нашел документацию, переменные которой доступны для использования.

Благодарим за помощь.

ответ

2

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

{{page_name}} 

Затем я использую, если заявление на основе page_name, который был отображается.

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

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

+0

мне пришлось использовать '{%, если PAGE_NAME == "архивы" %} класс = "активный"{% ENDIF%}' и я не нуждался в '{{page_name}}' в базовом шаблоне ... – Dominik

+0

Да, размещение '{{page_name}}' в базовом шаблоне является временным и только для определения того, что на самом деле является 'page_name' что вы можете создать свою логику. Рад, что это сработало для вас. –