Sphinx的include ::指令和“重复标签”警告
我试图使用Sphinx的.. include::
指令将文档从一个文件包含在另一个文件中,以避免重复文档的源文本。 我包含的部分在configuration.rst
(它是配置设置的参考文档的一部分),它包含一些用于交叉引用每个配置设置的标签:
.. start_config-authorization
.. _ckan.auth.anon_create_dataset:
ckan.auth.anon_create_dataset
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Example::
ckan.auth.anon_create_dataset = False
Default value: ``False``
Allow users to create datasets without registering and logging in.
.. _ckan.auth.create_unowned_dataset:
ckan.auth.create_unowned_dataset
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
.. end_config-authorization
在另一个文件( authorization.rst
)中,我只包含来自configuration.rst
inline的授权配置设置,如下所示:
.. include:: /configuration.rst
:start-after: start_config-authorization
:end-before: end_config-authorization
问题在于包含文本中的标签产生了Sphinx的这个警告:
doc/configuration.rst:224: WARNING: duplicate label ckan.auth.anon_create_dataset, other instance in doc/authorization.rst
到目前为止,交叉引用似乎没有被打破,如果我说:
:ref:`ckan.auth.anon_create_dataset`
在第三个文件中,这会正确生成一个链接, ckan.auth.anon_create_dataset
configuration.html
的ckan.auth.anon_create_dataset
的定义(而不是在authorization.html
包含它的副本)。
是否安全地忽略或沉默这些重复的标签警告,并期望所有交叉引用链接到configuration.html
? 或者我应该找到另一种方式来做到这一点?
有两种方法可以解决此问题:切换到其他扩展名(* .inc),或将任何包含文件添加到conf.py
exclude_patterns
。
安全可以忽略? 它仍然是一个警告,但原来的内容似乎阻止了包含的标签,所以它不应该太危险,如果你不时检查它。
您是否尝试将内容放入文件中,而不是索引为不带标签的文件,在需要它的地方包含此文件,并创建一个带有标签的索引文件并包含未标记的内容? 最后一个文件应该由引用指出。
Ps:我没有测试过,标签可能会被一个包含而不是标准内容的事实超越。
链接地址: http://www.djcxy.com/p/13165.html上一篇: Sphinx's .. include:: directive and "duplicate label" warnings