Простое одноуровневое меню
Плагин simple_menu.py для генератора сайтов Poole выводит простое одноуровневое меню, каждый пункт которого ссылается на конкретную страницу сайта. В зависимости от текущей страницы один из элементов меню будет подсвечен («текущий раздел»). Подключается так:
from plugins.simple_menu import *
Пример добавления страницы сайта в меню:
title: Фотографии из личного архива
menu-title: Фото
menu-position: 5
menu-prefox: /photo/
---
Здесь собраны все мои фотографии.
Эта страница попадёт в меню под названием «Фото», пункт меню будет подсвечен как на самой странице, так и на всех страницах из папки /photo
. Если свойства menu-title
нет — используется title
.
В код шаблона (page.html
) меню добавляется так:
<div id="menu">{{ simple_menu() }}</div>
Получаемый на выходе код выглядит примерно так:
<ul id="menu">
<li class="active"><a href="/"><span>Главная</span></a></li>
<li class="inactive"><a href="/photo/"><span>Фото</span></a></li>
</ul>
Настройка
Используемые свойства страницы:
labels
, при наличии ключевого слова «draft» страница исключается из меню.lang
, используется для фильтрации меню по языку.menu-key
, уходит в свойство accesskey пункта меню.menu-position
, определяет порядок пункта меню, содержит целое число. Без этого свойства страница не попадёт в меню.menu-prefix
, содержит префикс адреса, при наличии которого любая страница подсвечивает этот пункт меню. Например, если для пункта меню указан префикс «/photo/», то на странице с адресом «/photo/archive/» этот пункт будет подсвечен.menu-title
, используется в качестве заголовка пункта меню.title
, используется в качестве заголовка пункта меню, если нетmenu-title
.
Используемые глобальные константы:
DEFAULT_LANGUAGE
, содержит значение по умолчанию для свойстваlang
.
Важные особенности
- В меню входят только страницы с языком, соответствующим языку страницы, на которой выводится меню. То есть на страницах с разными языками будет разное меню.
- Страницы с меткой «draft» в меню не попадают.