Плагин TableOfContents. Создание оглавления для страницы
Плагин TableOfContents ищет заголовки на странице и строит по ним оглавление. Если заголовок включает в себя якорь, то пункты оглавления будут представлять собой ссылки на соответствующие якоря.
TableOfContents 1.3.2 (Требуемая версия OutWiker: 4.0.0.942 и выше)
TableOfContents 1.3.1 (Требуемая версия OutWiker: 3.2.0.922 и выше)
Использование
Плагин TableOfContents предоставляет два способа создания оглавления. Первый - это вставить команду (:toc:) на страницу, где должно быть оглавление. В этом случае при каждом рендеринге страницы оглавление будет пересоздаваться заново.
Если же вас не устраивает оглавление, создаваемое автоматически, то вы можете воспользоваться пунктом меню "Вики - Оглавление - Создать", и на страницу будет вставлено оглавление в виде викинотации, которое можно подправить под ваши нужды.
Рассмотрим несколько примеров.
Оглавление без ссылок
Пусть у нас есть следующая структура страницы.
...
!! Глава 1
...
!!! Раздел 1.1
...
!!! Раздел 1.2
...
!! Глава 2
...
!! Заключение
Если мы где-нибудь на этой странице выберем тункт меню "Вики - Оглавление - Создать", то на страницу будет добавлен следующий текст:
* Глава 1
** Раздел 1.1
** Раздел 1.2
* Глава 2
* Заключение
В результате оглавление будет выглядеть следующим образом:
Аналогичного результата можно добиться, добавив на страницу команду (:toc:).
Ссылки в оглавлении
Если в заголовках проставлены якоря, то плагин TableOfContents создаст ссылки на эти якоря в оглавлении. Якоря могут находиться в трех позициях относительно заголовка:
- Непосредственно перед тегами !!...
- Сразу после тегов !!...
- В конце заголовка.
Все три случая показаны в следующем примере:
...
!! [[#chapter1]] Глава 1
...
[[#section1_1]]
!!! Раздел 1.1
...
[[#section1_2]]
!!! Раздел 1.2
...
!! [[#chapter1]] Глава 2
...
!! Заключение [[#resume]]
Для такой структуры страницы оглавление будет выглядеть следующим образом:
* [[Глава 1 -> #chapter1]]
** [[Раздел 1.1 -> #section1_1]]
** [[Раздел 1.2 -> #section1_2]]
* [[Глава 2 -> #chapter1]]
* [[Заключение -> #resume]]
Все заголовки будут представлять собой ссылки:
Точно так же будет выглядеть результат, полученный с помощью команды (:toc:).
Совместное использование плагинов TableOfContents и Counter
Плагин Counter удобно использовать для нумерации глав и разделов, но для того, чтобы оглавление, созданное с помощью плагина TableOfContents также содержало правильную нумерацию, нужно на страницу добавить одно небольшое шаманство.
Для начала посмотрим, в чем проблема. В качестве примера возьмем главы из "Золотого теленка". Если бы Ильф с Петровым писали свое произведение в OutWiker с использованием плагина Counter, у них была бы примерно структура глав:
...
!!! Глава (:counter name="chapter":). Тридцать сыновей лейтенанта Шмидта
...
!!! Глава (:counter name="chapter":). Бензин ваш — идеи наши
...
!!! Глава (:counter name="chapter":). Обыкновенный чемоданишко
Результат будет выглядеть следующим образом:
Все замечательно. Если мы теперь в начале страницы создадим оглавление, то текст страницы будет выглядеть следующим образом:
* Глава (:counter name="chapter":). Тридцать сыновей лейтенанта Шмидта
* Глава (:counter name="chapter":). Бензин ваш — идеи наши
* Глава (:counter name="chapter":). Обыкновенный чемоданишко
!!! Глава (:counter name="chapter":). О том, как Паниковский нарушил конвенцию
...
!!! Глава (:counter name="chapter":). Тридцать сыновей лейтенанта Шмидта
...
!!! Глава (:counter name="chapter":). Бензин ваш — идеи наши
...
!!! Глава (:counter name="chapter":). Обыкновенный чемоданишко
Счетчик, как и положено, попал в оглавление, но после оглавления он продолжает наращивать свое значение, в результате чего "настоящие" главы начнут свою нумерацию с 5 в данном случае. Чтобы исправить такое поведение достаточно "сбросить" счетчик после оглавления, добавив всего одну строку:
* Глава (:counter name="chapter":). Тридцать сыновей лейтенанта Шмидта
* Глава (:counter name="chapter":). Бензин ваш — идеи наши
* Глава (:counter name="chapter":). Обыкновенный чемоданишко
(:counter name="chapter" start=0 hide:)
!!! Глава (:counter name="chapter":). О том, как Паниковский нарушил конвенцию
...
!!! Глава (:counter name="chapter":). Тридцать сыновей лейтенанта Шмидта
...
!!! Глава (:counter name="chapter":). Бензин ваш — идеи наши
...
!!! Глава (:counter name="chapter":). Обыкновенный чемоданишко
Теперь главы будут нумероваться так же, как и в оглавлении. Можно даже заменить все оглавление одной командой (:toc:):
(:counter name="chapter" start=0 hide:)
!!! Глава (:counter name="chapter":). О том, как Паниковский нарушил конвенцию
...
!!! Глава (:counter name="chapter":). Тридцать сыновей лейтенанта Шмидта
...
!!! Глава (:counter name="chapter":). Бензин ваш — идеи наши
...
!!! Глава (:counter name="chapter":). Обыкновенный чемоданишко
Результат будет выглядеть следующим образом:
Если теперь понадобится переставить главы местами или добавить в середину еще одну-две главы, то все главы будут автоматически перенумерованы, и оглавление по-прежнему будет соответствовать новой нумерации.
История изменений
1.3.2 (14.09.2024)
- Переход на новый API.
1.3.1 (03.05.2023)
- Переход на новый API.
1.3 (19.10.2019)
- Переход на новый API.
1.2 (26.08.2018)
- Добавлена немецкая локализация.
1.1.1 (16.06.2018)
- Исправление ошибок.
1.1 (15.02.2018)
- Добавлена поддержка OutWiker 2.1. Переход на Python 3.
1.0.4 (17.10.2016)
- Добавлена поддержка OutWiker 2.0.
1.0.3 (20.08.2016)
- Добавлена поддержка шведского языка.
1.0.2 (20.01.2015)
- Исправление ошибок.
1.0.1 (11.09.2014)
- Обновление итальянской локализации.
1.0 (30.08.2014)
- Первая версия.
Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.