自动模块在sphinx文档中生成toc

问题描述 投票:3回答:2

在Sphinx中,有没有办法让automodule指令生成类中成员的TOC?

现在我有

..内容::

.. topic:: Abstract

   bla bla bla

.. automodule:: ServerCommHandler
    :members:
    :private-members:
    :special-members:
    :show-inheritance:
    :inherited-members:

哪个工作正常,但这个模块中有很多方法,指向该方法的toc会非常好。

python python-sphinx
2个回答
-3
投票

怎么样toctree

.. toctree::

   ServerCommHandler

1
投票

autodocsumm扩展将允许autodoc指令(automodule,autoclass)自动添加类似内置autosummary扩展的汇总表。

它可以使用如下:

pip install autodocsumm

然后编辑你的conf.py添加扩展名:

extensions = [
    'sphinx.ext.autodoc',
    ...,
    'autodocsumm',
]

并在你的autodoc指令中添加一个:autosummary:选项,例如:

.. automodule: foo.bar
    :autosummary:

如果您希望在没有明确添加autodoc指令的情况下对所有autodoc指令生效,可以从conf.py执行以下操作:

autodoc_default_options = {
    'autosummary': True,
}

如果您使用sphinx-apidoc动态生成API页面,这将非常有用,而sphinx-apidoc无法轻松配置以添加:autosummary:

自动生成所有API页面的conf.py的完整示例:

def setup(app):
    from sphinx.ext import apidoc
    app.connect('builder-inited', lambda _: apidoc.main([
        '-o', './api', '-d2', '-feMT', '../src/PROJECT',
    ]))

extensions = [
    'sphinx.ext.autodoc',
    'sphinx.ext.intersphinx',
    'sphinx.ext.viewcode',
    'sphinx.ext.githubpages',
    'autodocsumm',
]


autodoc_default_options = {
    'autosummary': True,
}

autodata_content = 'both'
© www.soinside.com 2019 - 2024. All rights reserved.