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.htmlckan.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

下一篇: Best way to write an init.d script for start