Сфинкс: настроить заголовки разделов боковой панели - PullRequest
0 голосов
/ 12 февраля 2020

Я документирую свой Python проект с помощью Sphinx. Поскольку некоторые из моих страниц документации довольно длинные, я бы хотел иметь как локальное, так и глобальное оглавление на боковой панели. Я добиваюсь этого через

html_sidebars = { '**': ['localtoc.html', 'globaltoc.html', 'searchbox.html'] }

Результат почти такой, как хотелось бы. Однако как локальное, так и глобальное оглавление имеют одинаковый заголовок («Оглавление»). То есть это выглядит как

Table of Contents
 - Subheading 1
 - Subheading 2
 - Subheading 3

Table of Contents
 - Subpage 1
 - Subpage 2
 - Subpage 3

Это сбивает с толку читателя.

Я нашел файл localtoc.html в папке пакета sphinx моей установки Python и отрегулировал html для моих нужд (замена названия) прост. Однако я не хотел бы изменять исходный файл Sphinx, и создание моей собственной темы с помощью пакета python кажется мне излишним.

Есть ли способ заменить localtoc.html локально, т.е. только для текущего проекта?

1 Ответ

0 голосов
/ 24 февраля 2020

Вы можете переопределить поведение шаблона localtoc.html.

Создать папку _templates в вашем Sphinx root (там же, где находится файл conf.py) и скопировать localtoc.html из вашей установки Sphinx в эту папку.

Затем вы можете изменить этот файл, как вы sh. Удалите эту строку:

<h3><a href="{{ pathto(master_doc) }}">{{ _('Table of Contents') }}</a></h3>

, чтобы избавиться от лишнего заголовка, или вы можете заменить любой текст, например, sh (например, изменив содержимое <a> на Local Contents или что угодно.

Обратите внимание, что изменение localtoc.html удаляет top из двух заголовков. Если это то, что вы хотели, отлично! Если нет, вы можете повторить процесс просто используя globaltoc.html таким же образом.

...