#python-sphinx
#питон-сфинкс #python-sphinx
Вопрос:
Переменная шаблона Sphinx toc предоставляет HTML-список заголовков в текущем документе (т. е. текущей странице).
Однако для моих целей мне нужен список заголовков:
- исключая заголовок документа
- ограниченной глубины
Я надеюсь найти расширение, которое будет генерировать локальное оглавление с дополнительным контролем, который мне нужен. Другим подходом была бы модифицированная версия toctree (которая создает глобальное оглавление), которая генерировала бы список HTML, начиная только с текущего узла.
Комментарии:
1. Я не знаю ответа. Как вы правильно сказали, toc — это переменная, содержащая полный локальный ToC как <ul>, поэтому вы не можете ограничить глубину. содержание:: директива также генерирует локальный ToC как <ul>, но может ограничивать глубину. В обоих случаях оглавление всегда начинается с заголовка документа.
2. У меня возникли некоторые трудности с осознанием этого ограничения… TOC обычно является директивой reST (пока что Сфинкс не нужен). Ограниченное ограничение глубины должно быть выполнено с помощью toctree, вы имеете в виду использование toctree внутри 1 заданного
.rst
файла, в котором отображается только содержимое файла, в котором оно находится? (Или это обязательно должно быть шаблонным решением?)3.
toctree
Шаблон можно найти вvenv38Libsite-packagessphinxtemplatesapidoctoc.rst_t
предположим, вы могли бы создать этот шаблон?! Я не помню, чтобы видел какой-либо вопрос по SO, который настраивает шаблон, так что это интересная перспектива.
Ответ №1:
Используйте contents
директиву.
Директива «contents» генерирует оглавление (TOC) в разделе. Темы и, следовательно, оглавления могут встречаться в любом разделе или переходе. Основные элементы и разделы могут не содержать оглавлений.
Вот директива в ее простейшей форме:
.. contents::
Комментарии:
1. К сожалению, это не сработает. Мне не нужно генерировать оглавление, мне нужен доступ к переменной a в контексте шаблона.