Sphinx:模块中的函数列表

aqu*_*tae 11 python python-sphinx

我有一些python模块,主要包含函数和几个类.每个人都使用sphinx-autodoc在一个单独的rst中记录.我想要做的是在每个页面的顶部创建一个表或模块的内容列表,例如,mymodule.py是

def first():
    'First function'

def second():
    'Second function'
Run Code Online (Sandbox Code Playgroud)

而mymodule.rst是

Page Contents
-------------

:create_page_contents_list:

Members
-------

.. automodule:: mymodule
    :members:
Run Code Online (Sandbox Code Playgroud)

那么输出应该是这样的:

Page Contents
-------------

first
second

Members
-------

first()
    First function

second()
    Second function
Run Code Online (Sandbox Code Playgroud)

问题怎么办:create_page_contents_list:.我已经看过使用TOC,但似乎我需要为每个项目手动创建一个条目.我也看过autosummary,但我仍然需要列出成员.有任何关于自动化的建议吗?我宁愿避免第三方扩展.

Kev*_*orn 1

您可能需要类似autosummary扩展名的东西。不过,实际的自动摘要扩展并不能完全满足您的要求。

此答案中给出了如何扩展自动摘要以自动检测模块内容的示例

  • 您能提供一个在这种情况下使用它的例子吗? (19认同)
  • 这个扩展如何解决这个问题?使用“自动摘要”,您仍然需要手动指定列表中的每个函数/方法/属性。模块的“:members:”选项(如“autodoc”)不可用。我发现自动执行此操作的唯一解决方案是基于 javascript。令我烦恼的是,大多数 Python 文档都没有对所有模块成员进行简洁的表格概述(看看你_matplotlib_)。 (4认同)