过去,我需要能够从同一个源文件编译两个文档:一个公共的和一个私有的。
为了成功,我必须编写自己的插件(您可以找到 here)。
当我有一个文件只在私人文档中时,我只需在文件顶部添加以下指令(强制)
.. 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 p>
所以使用
sphinx-build ... -t private_version ...
会生成toctreelike:
- public-sample.rst
- 私人样本.rst
但是如果你用
sphinx-build ... -t other ...
或
sphinx-build ...
toctree 看起来像
我的插件不是 100% 完美的,但我只是一小段易于理解的代码,因此您可以随意编辑 :)
了解限制:
限制:
- 指令 .. meta:: :scope: 必须放在文件的顶部(前面没有行)
- 指令 .. meta:: :scope: 必须匹配正则表达式 ^.. meta::\s+:scope: ([a-zA-Z0-9_-]+)
- 指令 .. meta:: :scope: 可以管理多个标签,但您可以根据需要轻松更新插件
- 插件偏离了原来使用
meta指令docutils.sourceforge.net/docs/ref/rst/directives.html#meta