6

特定のタグが設定されている場合にのみ、自分のファイルの 1 つを Sphinx TOC に含めたいのですが、明らかな方法は失敗します。

.. toctree::
   :maxdepth: 5

   index
   core
   utils
   oec
   plotting

   install
   news

   glossary

   .. only:: private_version

      todo

これを達成する簡単な方法はありますか?

4

1 に答える 1

4

以前は、同じソース ファイルから 2 つのドキュメント (パブリックとプライベート) をコンパイルできるようにする必要がありました。

成功するには、独自のプラグインを作成する必要がありました (ここで見つけることができます)。

プライベートドキュメントのみにファイルがある場合、ファイルの先頭に次のディレクティブを追加するだけです (必須)

.. meta::
    :scope: private_version

public-sample.rst (特に何もない)

Title
=====

A public content

プライベートサンプル.rst

.. meta::
    :scope: private_version

Title
=====

A private content

index.rst

.. toctree::
    :maxdepth: 3

    public-sample.rst
    private-sample.rst

ご覧のとおりtoctree、両方の参照がありますが、タグを使用してビルドしていない場合、プラグインはコンパイル中にprivate-sample.rstを削除しますprivate

だから使って

sphinx-build ... -t private_version ...

toctree次のように生成されます。

  • 公開サンプル.rst
  • プライベートサンプル.rst

しかし、あなたがで構築する場合

sphinx-build ... -t other ...

また

sphinx-build ...

toctreeようになります

  • 公開サンプル.rst

私のプラグインは 100% 完璧ではありませんが、簡単に理解できる小さなコードにすぎないので、好きなように編集できます :)

制限を知る:

制限:

  • ディレクティブ .. meta:: :scope: はファイルの先頭に配置する必要があります (前に行はありません)
  • ディレクティブ .. meta:: :scope: は正規表現 ^.. meta::\s+:scope: ([a-zA-Z0-9_-]+) と一致する必要があります
  • ディレクティブ .. meta:: :scope: は複数のタグを管理できますが、必要に応じてプラグインを簡単に更新できます
  • プラグインは、metaディレクティブ docutils.sourceforge.net/docs/ref/rst/directives.html#metaの元の使用法を逸脱します
于 2014-02-25T19:46:03.153 に答える