15

我正在使用 Sphinx autodoc 扩展来记录模块,并且我想在文档输出中获得模块成员的平面列表。

我尝试使用以下内容:

.. automodule:: modname
   :members:

但是,这样做有两个问题:

  1. 它包括模块的文档字符串,我不想在这里。

  2. 每个条目的名称都以“modname.”为前缀,这是完全多余的(因为此页面专门用于记录此模块)

但是,我还没有找到任何配置选项,可以让我有选择地禁用这两个方面,同时仍然获得所有模块成员的自动列表。

我目前的计划是只使用自动功能(等)并明确枚举要记录的成员,但我仍然想知道我是否错过了实现我最初想要的简单方法。

更新:我至少找到了第二部分的解决方法:设置add_module_names=Falseconf.py. 不过,这是一个全局设置,所以它并不能真正回答我原来的问题。

4

1 回答 1

4

查看类似问题的答案,我发现您可以使用该autodoc-process-docstring事件从模块中删除文档字符串,并将以下代码附加到您的conf.py

def skip_modules_docstring(app, what, name, obj, options, lines):
    if what == 'module':
        del lines[:]

def setup(app):
    app.connect('autodoc-process-docstring', skip_modules_docstring)

请注意,该del语句是必需的,因为根据文档,修改lines必须发生在适当的位置(如果您创建一个新对象,它就不起作用)。

Finally, you can also use name to filter the docstrings of just a few modules while keeping the ones from others.

于 2011-12-07T13:08:39.093 回答