2015-11-10 12 views
8

:maxdepth: 2を含むTOC(index.rst)を持つSphinx projectがあります。問題はreleaseセクションの深さを1に減らして、メインのTOCにリリースノートのリストがない(リストが長すぎる)ようにしたいということです。スフィンクスTOCツリーを修正してください

それはTOCリ​​ストはdoctree-resolvedイベントハンドラを使用して変更することができるようですが、私は、イベントハンドラでTOCツリーを変更する方法を見つけ出すことはできません。

from sphinx import addnodes 

def setup(app): 
    def update_toctree(app, doctree, docname): 
     if docname != 'index': 
      return 

     node = doctree.traverse(addnodes.toctree)[0] 
     toc = app.env.resolve_toctree(docname, app.builder, node) 

     # do something with "toc" here 

    app.connect('doctree-resolved', update_toctree) 
+0

私はTOCノードを読んで変更することはできますが、変更を維持することはできません。 – geographika

答えて

1

私は、ハイテクなソリューションを見つけました:CSSを使って最後のアイテムの子供を隠してください。

div.toctree-wrapper > ul > li:last-child > ul { 
    display: none; 
} 
4

おそらくない理想的なソリューションを、

#################### 
Presto Documentation 
#################### 

.. toctree:: 
    :maxdepth: 2 

    overview 
    installation 

.. toctree:: 
    :maxdepth: 1 

    release 

それはほとんどのテーマが木々の間に余分なパディングを追加しますので、理想的ではありませんが、より優れていた私の場合:私は、複数を同じページ上toctreeエントリを使用する前に、のようなものがこのような何かをやりましたthを持つ特定のページのネストされたアイテムの巨大なリスト。

+0

これは興味深い解決策ですが、私が「番号付き」を使用しているため私の場合は役に立たないので、新しいTOCを開始すると番号がリセットされます。 –

関連する問題