重命名Sphinx自动摘要toctree条目

时间:2019-02-05 14:07:40

标签: python documentation python-sphinx

我决定使用autosummary来创建我的模块的文档。在index.rst中,我“导入了”所有我想记录文档的相关模块和子模块。这些模块已按预期进行了文档记录,但是有一件事困扰着我。模块路径相当长,在文档旁边的toctree中它们看起来是排斥的。

index.rst

Documentation
*************

Documentation of things.

.. toctree::

.. autosummary::
   :toctree: _autosummary

   module
   module.submodule
   module.submodule.sub

   module.long_submodule.sub_1
   module.long_submodule.sub_2
   module.long_submodule.sub_3
   module.long_submodule.sub_4

conf.py

project = 'Name'
author = 'Me'
version = '0.7'

extensions = ['sphinx.ext.autodoc', 'sphinxcontrib.fulltoc', 'sphinx.ext.autosummary']
templates_path = ['_templates']
autosummary_generate = True
master_doc = 'index'

是否可以重命名导航栏中的条目,最好是在index.rst中?我也愿意考虑将方法从autosummary更改为其他方法系统完成任务。


我还为名为_templates/autosummary/module.rst的模块使用了自定义模板。其内容如下:

{{ fullname }}
{{ underline }}

.. automodule:: {{ fullname }}
   :members:
   :undoc-members:
   :show-inheritance:

1 个答案:

答案 0 :(得分:0)

一个人可以扩展sys.path来导入子模块而无需引用父模块。在conf.py中:

import sys
sys.path.insert(0, 'D:/abs/path/to/module')

然后将module.long_sub.etc中的long_sub.etc更改为index.rst。可以在根文件夹中插入目录(例如D:/abs/path/to/module/long_sub)以缩短导入时间。