2013-06-19 7 views
8

Pracuję z Sphinx (sphinx-1.2b1-py2.7). Chcę, aby spis treści pojawił się na pasku bocznym. Wydaje się binarny: mogę uzyskać tylko spis treści na pasku bocznym i wypunktowanej liście w treści tekstu, albo nie otrzymuję niczego (brak spisu treści na pasku bocznym i brak listy punktowanej).Sphinx toctree wyświetla TOC na pasku bocznym z wypunktowaną listą w ciele, lub nic w ogóle

Kiedy użyć dyrektywy toctree takiego:

.. toctree:: 
    :hidden: 

    Topic1 
    Topic2 

Wynik: Brak spisu treści na pasku bocznym, nie punktowane listę tematów w organizmie.

Kiedy użyć dyrektywy toctree takiego:

.. toctree:: 

    Topic1 
    Topic2 

Wynik: spis treści na pasku bocznym oraz punktowanej liście tematów w organizmie.

Po prostu chcę spis treści na pasku bocznym. Inne polecenia (maxdepth, includehidden) nie działają. Widziałem, jak to się stało, ale nie mogę go uruchomić. Plik conf.py wygląda dobrze, ale nie ma szczęścia po kilku dniach szukania odpowiedzi. Dzięki.

+0

Myślę, że opcja '.. toctree ::' z opcją ': noindex:' załatwiłaby sprawę, ale nie, nic. –

Odpowiedz

4

Miałem z tym problem; Znalazłem odpowiedź here.

Spis treści spisany jest za pośrednictwem wywołania toctree() wewnątrz, na przykład pliku o nazwie layout.html. W szczególności, jest pokazany na pasku za pomocą fragmentu kodu podobnego do następującego, który rezyduje w <div class="sidebar">:

{% block sidebartoc %} 
<h3>{{ _('Table Of Contents') }}</h3> 
{{ toctree() }} 
{% endblock %} 

Ponieważ używam motywu layout.html znajduje się w katalogu tematycznego wewnątrz _themes katalogów ; w przeciwnym razie layout.html może znajdować się w katalogu _templates.

W nowszych wersjach Sfinksa, co jest potrzebne, aby wyświetlić TOC gdy :hidden: służy jako w

.. toctree:: 
    :hidden: 

jest dodanie argumentu includehidden=True na wezwanie do toctree(), jak w

{% block sidebartoc %} 
<h3>{{ _('Table Of Contents') }}</h3> 
{{ toctree(includehidden=True) }} 
{% endblock %}