Как добавлять подписи в токтри Sphinx без добавления новых документов?

Хорошо, я использую Sphinx Autosummary для создания документации для некоторых классов. Есть три разных типа классов, и я хочу, чтобы моя боковая панель имела три отдельных раздела, как если бы я использовал параметр: caption: в директиве toctree.

Итак, я добавил разделенную директиву автосуммирования на три меньшие директивы, и я поместил между ними скрытое дерево маркеров, например:


Section 1

.. toctree::
   :hidden:
   :caption: Section 1

.. autosummary
   :toctree: stubs

   myclass
   anotherclass


Section 2

.. toctree::
   :hidden:
   :caption: Section 2

.. autosummary::
   :toctree:

   thirdclass

дает боковую панель вроде:

myclass
anotherclass
thirdclass

Это не работает. Иерархия моего index.html в точности такая, как я хочу, но на боковой панели отсутствуют мои подписи, они не отображаются. Когда я добавляю страницу типа self под любым из этих скрытых toctrees, появляется заголовок:


Section 1

.. toctree::
   :hidden:
   :caption: Section 1

   self

.. autosummary
   :toctree: stubs

   myclass
   anotherclass


Section 2

.. toctree::
   :hidden:
   :caption: Section 2

.. autosummary::
   :toctree:

   thirdclass

дает боковую панель вроде:

SECTION 1 (caption)
Documentation Home
myclass
anotherclass
thirdclass

Это то, что я искал, но я не хочу ссылаться на self или что-то еще. Мне просто нужны подписи. Как мне это сделать?


person Jay Parthasarthy    schedule 13.12.2019    source источник
comment
Вы используете sphinx_rtd_theme?   -  person mzjn    schedule 14.12.2019
comment
Да, я использую эту тему.   -  person Jay Parthasarthy    schedule 15.12.2019


Ответы (1)


Цель toctree - организовать вложенные страницы, и в нем должна быть хотя бы одна запись (имя файла). Иначе смысла в использовании нет.

Приведенная ниже разметка создает желаемую боковую панель с sphinx_rtd_theme. Я понимаю, что он не дает вам нужную индексную страницу, но я не могу придумать другого способа сделать это. Поместите директивы autosummary в отдельные файлы и добавьте каждый файл как запись toctree.

.. toctree::
   :caption: Section 1

   autosummary1

.. toctree::
   :caption: Section 2

   autosummary2
person mzjn    schedule 15.12.2019
comment
Что это решение делает с моим index.rst? Я предполагаю, что пользователи не смогут видеть все классы на одной странице, как я бы предпочел. - person Jay Parthasarthy; 16.12.2019
comment
Собственно, буквально было ... Без добавления новых документов это часть заголовка вопроса. Спасибо за вашу помощь. - person Jay Parthasarthy; 16.12.2019
comment
Я просто хочу, чтобы структура боковой панели отражала структуру моей домашней страницы. Мне не нужны вложенные страницы. Если это невозможно в Sphinx-rtd, что угодно. - person Jay Parthasarthy; 16.12.2019
comment
Все, что я просил, это способ сделать структуру боковой панели такой же, как у моей домашней страницы. Не кажется безумным, что кто-то может захотеть включить несколько подписей в одно дерево токтрейдов. Я помещаю только toctrees с нулевыми записями, чтобы попытаться взломать заголовок, не реструктурируя всю мою домашнюю страницу - суть вопроса. Если Sphinx не поддерживает эту опцию, вы можете просто сказать об этом. Нет необходимости в тоне вашего комментария. - person Jay Parthasarthy; 16.12.2019