当设置了特定标签时,我希望在Sphinx TOC中仅包含我的文件之一,然而,显而易见的方法失败了:
.. toctree::
:maxdepth: 5
index
core
utils
oec
plotting
install
news
glossary
.. only:: private_version
todo
有没有简单的方法实现这个?
当设置了特定标签时,我希望在Sphinx TOC中仅包含我的文件之一,然而,显而易见的方法失败了:
.. toctree::
:maxdepth: 5
index
core
utils
oec
plotting
install
news
glossary
.. only:: private_version
todo
曾经,我需要从同一个源文件编译出两份文档:公开的和私密的。
为了达成这个目的,我不得不编写自己的插件(你可以在这里找到它)。
当我需要将文件放到私密文档中时,我只需在文件顶部添加以下指令(必填):
.. meta::
:scope: private_version
public-sample.rst(没有特殊情况)
。Title
=====
A public content
private-sample.rst
.. meta::
:scope: private_version
Title
=====
A private content
index.rst
.. toctree::
:maxdepth: 3
public-sample.rst
private-sample.rst
如您在 toctree
中所看到的,有两个参考文献,但如果您不使用标签 private
进行构建,则插件会在编译期间删除 private-sample.rst
因此,请使用:
sphinx-build ... -t private_version ...
将生成toctree
如下:
但如果使用以下命令构建,则不会包含在内:
sphinx-build ... -t other ...
或者
sphinx-build ...
toctree
将如下所示:
我的插件并非完美无缺,但我只写了一小段易于理解的代码,使您可以根据需要进行编辑 :)
已知限制:
限制:
meta
指令 docutils.sourceforge.net/docs/ref/rst/directives.html#meta 的原始用途
:orphan:
以消除警告。 - 0leg