6

che sto cercando di utilizzare sfinge in un modo per documentare più "livelli" di documentazione, ad esempio:più livelli di Toctree di Python-Sfinge

  • API Reference
  • Manuale
  • Tutorial
  • Etc.

L'idea è che l'Indice sia mostrato nella barra laterale relativa alla sezione in cui ci si trova. Quindi quando si è nell'indice principale mostra solo le sezioni menzionate sopra. Quando vai ad es. "Manuale" mostra un ToC specifico per quella sezione e un modo per tornare al ToC principale.

Ho cercato di capire come farlo funzionare in Sphinx senza averlo hackerato, ma finora non riesco a capire un modo. La struttura delle cartelle sta già riflettendo le diverse sezioni (ad esempio, tutta la documentazione "manuale" è memorizzata in _source/manual) e ho provato a inserire file di indice separati in ognuna di quelle directory, ma sembra che la funzionalità di toctree guardi solo indice principale.

Sto usando il tema "readthedocs", il codice sto guardando in particolare è https://github.com/snide/sphinx_rtd_theme/blob/master/sphinx_rtd_theme/layout.html#L93

qualcuno può dirmi come andrei circa l'aggiunta di un indice come questo usando Sfinge?

Grazie

risposta

0

Sembra che una .. toctree:: in un documento in una sottodirectory è radicata in quella sottodirectory (vedi per esempio https://docs.python.org/2/_sources/howto/index.txt). Per il TOC di livello superiore, :maxdepth: limita l'inclusione di livelli inferiori.

Questo può essere inserito nella barra laterale creando un modello corrispondente e aggiungendolo al parametro di costruzione html_sidebars. UPDATE: non funziona; in un modello di barra laterale, TOC ha sempre la radice in alto.

1

(Forse un po 'tardi per questa risposta) Ho una situazione simile come la tua, ho tre sezioni contenute nella stessa TOC albero:

  • hardware
  • Software
  • Tutorial

Stavo cercando di ottenere lo stesso risultato che nascondete per il mio menu della barra laterale tutto ciò che non appartiene al toctree-l1 corrente. Sapendo che Sfinge aggiunge la classe CSS 'corrente' mi si avvicinò con:

#sidebar li.toctree-l1:not(.current){ 
    display: none; 
} 

E non è la soluzione migliore in assoluto, ma dal momento che Sfinge può solo gestire una radice principale per la documentazione e da che crea l'intero sommario albero , se ne hai solo bisogno per il menu della barra laterale, CSS potrebbe funzionare per te.

screenshot del mio menù solo mostrando il contenuto di seguito una sezione:

+1

non è mai troppo tardi per una risposta.il software cambia nel tempo quindi non è impossibile che ci siano nuove soluzioni. dato che sei riuscito a trovare questa domanda, qualcun altro potrebbe trovarlo utile in futuro. – GottZ