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

Мне было интересно, есть ли способ расширить все подразделы под заголовками, которые включены в файл index.rst?

Вот, например, как это бывает:

Section 1
Section 2
Section 3

И вот как я хотел бы, чтобы это было:

Section 1
  Subsection 1.1
  Subsection 1.2
  Subsection 1.3
Section 2
  Subsection 2.1
  Subsection 2.2
  Subsection 2.3
Section 3
  Subsection 3.1
  Subsection 3.2
  Subsection 3.3

Если я нажму на Раздел 1, он покажет, что находится под ним, но если я нажму на Раздел 2, содержимое раздела 1 будет скрыто, и будет показано только 2. Я хотел бы, чтобы все 2 раздела расширялись каждый раз, когда я нахожусь на главной странице. Пробовал добавлять toctree и maxdepth, ничего не работает.


person Joe D    schedule 23.01.2013    source источник
comment
Можете ли вы добавить содержимое вашего файла index.rst к вопросу?   -  person ddbeck    schedule 27.01.2013
comment
Если вы используете тему ReadTheDocs, вы можете проверить stackoverflow.com/questions/27669376/   -  person erb    schedule 03.08.2017


Ответы (3)


Ну, я потерял примерно 3,4 миллиона нейронов, пытаясь прочитать исходный код сфинкса (это было написано кучей бешеных безрассудных енотов?! столько уровней абстракции).

So :

  • создайте свою собственную тему сфинкса (используйте стороннюю тему в качестве основы, очень просто. Для этого я использую «читаемую» тему)
  • в каталоге, где у вас есть theme.conf, добавьте шаблон «fulltoc.html», содержащий одну строку:

fulltoc.html:

{{ toctree(collapse=False) }}

(Хе, заметил аргумент «крах»?)

  • в sphinx conf.py измените параметр html_sidebars, чтобы добавить свой шаблон; и объявить свою тему

conf.py:

html_theme_path = [customized_readable_theme.get_html_theme_path()]
html_theme = 'customized_readable'
html_sidebars = {'**': ['fulltoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html']}
  • перестроить документацию
person Stephane Martin    schedule 17.10.2015

Если вы используете sphinx_rtd_theme, вы можете изменить максимальную глубину меню боковой панели на странице html, изменив значение 'toctree maxdepth', определенное в файле layout.html. Этот файл обычно находится в каталоге source/_themes/sphinx_rtd_theme. Есть несколько решений:

  • Самое простое и быстрое решение: Показать более глубокое toctree на боковой панели

  • Вы используете старую версию темы. Затем вы можете установить новое значение «maxdepth» (например, 3) в строке, которая гласит:

    {% set toctree = toctree(maxdepth=3, collapse=False, includehidden=True) %}
    
  • Вы используете новейшую версию темы. Тогда у вас могут быть следующие строки в файле layout.html:

    {% set global_toc = toctree(maxdepth=theme_navigation_depth|int,
                                collapse=theme_collapse_navigation|tobool,
                                includehidden=theme_includehidden|tobool,
                                titles_only=theme_titles_only|tobool) %}
    

    В этом случае вы можете определить 'theme_navigation_depth' в theme.conf:

    [options]
    theme_navigation_depth = 3
    

Перекомпилируйте после внесения изменений... и не забудьте насладиться солнцем!

person Al Landy    schedule 31.05.2019

К сожалению, в этом есть открытая ошибка: https://github.com/readthedocs/sphinx_rtd_theme/issues/455

person user1460675    schedule 03.02.2020