2016-12-02 8 views
6

Я новичок в Пеликан. Я структурирую свой сайт, так что у меня есть две категории: блог и проекты. У меня есть 3 кнопки меню: «Главная», «Блог» и «Проекты». Я пытаюсь изменить файл шаблона base.html, чтобы кнопка «Блог» была активной, если я в blog/ или в любом ее подкаталоге, а кнопка «Проекты» активна, если я в projects/ или в любом ее подкаталоге. Если бы у меня была переменная, доступная в base.html, которая дает мне относительный URL текущей страницы, я мог бы разбить ее на / и получить первую директорию в пути. Я искал вокруг, и я не могу найти переменную для относительного URL текущей страницы. Есть ли встроенная переменная или способ для меня создать пользовательский для того, что я ищу?Переменная для URL текущей страницы в шаблонах пеликан

ответ

6

Поскольку я также новичок в пеликан, проконсультируйтесь с солью.

Эта переменная даст вам имя текущего файла, как указано в documentation: собственность При создании пунктов меню для моих страниц, я могу проверить против «save_as» из:

{{ output_file }} 

Например страница для выбора соответствующего пункта меню точного:

{% if output_file == p.save_as %}active{% endif %} 

Но в вашем случае, это должно быть, например, достаточно проверить, что текущая страница является статьей вообще (предполагая, что «Блог» содержит все ваши статьи), чтобы выделить пункт меню блога. Например, проверяя, если переменная «статья» присутствует:

{% if article %}class="active"{% endif %} 

Если ваши проекты сделаны из «страниц», просто проверить по первичной переменной этих типов контента:

{% if page %}class="active"{% endif %} 

Для домашняя страница, категории, архивы и т. д. можно проверить содержимое «page_name»:

{% if page_name == 'index' %}class="active"{% endif %} 
+2

Вы не можете знать, как ваш ответ помог мне! Я смотрел, как проверить, не статьи и страницы .. ваше 'if page_name' именно то, что мне нужно! – matteo