我试图用Sphinx的.. include::
directive将文件从一个文件包含在另一个文件中,以避免重复文档的源文本。我包括的部分是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
在线授权的配置设置,如:
.. include:: /configuration.rst
:start-after: start_config-authorization
:end-before: end_config-authorization
的问题是,所包含的文本中的标签生产从狮身人面像这样的警告:
doc/configuration.rst:224: WARNING: duplicate label ckan.auth.anon_create_dataset, other instance in doc/authorization.rst
到目前为止交叉引用似乎并没有被打破,如果我把:
:ref:`ckan.auth.anon_create_dataset`
在第三个文件,这会产生正确的configuration.html
(而不是包含副本的链接到的ckan.auth.anon_create_dataset
定义它在authorization.html
)。
简单地忽略或沉默这些重复标签警告是否安全?并且期望所有交叉引用链接到configuration.html
?或者我应该找到另一种方式来做到这一点?
不是。我认为如果检测到重复,它将被忽略。要么引用没有链接,要么目标不会被创建,或者两者都不会。 – erikbwork 2013-09-26 09:34:10