Заголовки при использовании autodo c в Sphinx - PullRequest
1 голос
/ 12 июля 2020

У меня есть файл документации, который выглядит так:

##
H1
##

Blah Blah

**
H2
**
Blah Blah

H3
==

Blah Blah

H4
--

Blah Blah

.. automodule:: lib.X
   :members:

Файл Python X.py выглядит так:

"""
Another H3
==========

Blah Blah
"""

Lots of stuff

Моя проблема в том, что первый заголовок из строки документации модуля в X.py отображается в HTML так же, как последний заголовок в исходном документе H4, вместо того, чтобы отображаться как заголовок третьего уровня. Я что-то делаю не так или обнаружил проблему в Sphinx?

Ответы [ 2 ]

1 голос
/ 13 июля 2020

Я считаю неправильным включать reST структурные элементы в строку документации, а именно Разделы (заголовки) и Переходы (Sphinx должен выдать предупреждение, если вы попытаетесь). Не путайте первое с разделами строки документации . Оба называются разделами , но на этом сходство заканчивается.

Потому что, если вы хотите включить данный модуль или класс в два разных файла .rst, используя autodoc директивы , фиксированные заголовки (структурный элемент) внутри строки документации могут не совпадать с другой иерархией заголовков в файлах .rst.

Это создаст структурное ограничение, иерархия заголовков файлов .rst будет зависеть от размещение в нем ваших autodoc директив. Концептуально, я думаю, что управление структурой должно зависеть только от файла .rst.

Плюс, стиль оформления раздела , который однажды встречается, определяет уровень заголовка, поэтому разные размещения вашего autodoc директивы в конечном итоге получат контроль над структурой .rst. (И давайте не будем забывать, что если ваш вывод - HTML, вы будете ограничены 6 уровнями заголовков, поэтому их использование в строках документации еще больше ограничит ваши структурные параметры в .rst ...)

Как документальный фактор учитывается в этом уравнении? (упоминается OP в комментариях.)

Не беспокойтесь о документах !! Обычному разработчику Python нужен только Sphinx (что влечет за собой reST ) для написания хорошей документации. Использование документации будет заключаться в написании дополнительных расширений Sphinx, но для большинства применений стабильные расширения / директивы уже предусмотрены.

1 голос
/ 12 июля 2020

Страницы анализируются независимо, без знания символов / иерархии украшения, которые вы применяете на других страницах. Последовательность H1 / H2 / H3 - это просто встречающийся порядок .

Например, попробуйте переместить фрагмент .. automodule:: из нижней части файла документации (т.е. найденный 5-й заголовок) в top (т.е. 1-й заголовок), и его стиль обновится.

Таким образом, заголовок раздела в вашем Python файле будет иметь стиль H1, просматриваемый там ... или H5, когда он встроен в файл документации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...