Существует ли расширение Sphinx, которое предоставляет настраиваемый toc (или более настраиваемое toctree) в шаблонах?

#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 в контексте шаблона.