2013-09-23 13 views
28

Ich erstelle HTML-Dokumentation in Sphinx.Wie man den Toctree in die Seitenleiste jeder Seite einfügt

Wie ändere ich die Seitenleiste für jede der HTML-Seiten in meinem Dokument, so dass sie die Toctree enthalten? Standardmäßig scheint der Toctree nur auf der Seite master_doc und nur im Hauptbereich statt der Seitenleiste angezeigt zu werden.

Gibt es eine einfache Möglichkeit, dies zu tun? Ich werde readthedocs verwenden, um die generierte Dokumentation zu hosten, daher würde ich es vorziehen, die Verwendung von Plugins von Drittanbietern zu vermeiden, es sei denn, sie sind auch auf Readthedocs verfügbar.

Antwort

32

Sie können Ihre HTML-Sidebar in conf.py anpassen.

Die Standard-HTML-Seitenleiste besteht aus 4 Vorlagen:

['localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html'] 

In conf.py könnten Sie localtoc.html so globaltoc.html ändern:

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

Aber ich bin nicht sicher, ob dies funktioniert auf readthedocs.

+2

Diese Lösung gearbeitet readthedocs gut. –

+3

Stand Dezember 2016 - Diese Option ist nicht in der Standardsphinx conf.py, so dass Sie nicht nach 'html_sidebars' suchen können, aber wenn Sie es einstellen, funktioniert es. –

3

Die Aufnahme von "globaltoc.html" hat den Nachteil, dass nicht sowohl der globale als auch der lokale Tok für die angezeigte Seite angezeigt wird.

Es scheint, dass andere wurden zu dieser Einschränkung geärgert und resultierten in der späteren Entwicklung einer Verlängerung einen vollständigen toc in der Sidebar zu unterstützen, Check-out: https://pypi.python.org/pypi/sphinxcontrib-fulltoc

+0

Das funktioniert super! Aber ich musste 'pip install --upgrade setuptools' zuerst installieren, sonst konnte es nicht mit einem seltsamen Fehler installiert werden:' AttributeError: '_NamespacePath' Objekt hat kein Attribut 'sort'' – alexanderlukanin13

Verwandte Themen