2011-10-19 51 views
9

我想在我的Sphinx文档中只包含特定函数的文档字符串。但似乎没有选择只显示这些细节没有关联的类和函数定义使用http://sphinx.pocoo.org/ext/autodoc.html在Sphinx文档中包含docstring

我试过创建一个类如show *only* docstring in Sphinx documentation中概述,但我不知道如何适应与模板。

我也尝试过没有运气的autodoc-process-docstring事件处理程序。

因此,而不是我的文档显示(因为它是目前):

class module.MyClass(param) 

    This is the class doc string 

    my_method() 

     This is my method doc string 

我只是想显示:

This is my method doc string 

我现在在一个.txt文件模板是:

.. autoclass:: module.MyClass 
    :members: my_method 

回答

14

通过源代码和实验后 - 这里是如何做到这一点在狮身人面像1.1。

在您的conf.py文件中创建一个新的MethodDocumenter子类。在这里您可以设置一个新的“objtype”,确保文档字符串不缩进,并删除标题。

from sphinx.ext import autodoc 

class SimpleDocumenter(autodoc.MethodDocumenter): 
    objtype = "simple" 

    #do not indent the content 
    content_indent = "" 

    #do not add a header to the docstring 
    def add_directive_header(self, sig): 
     pass 

然后确定这个被添加到现有的资料员用下面的函数(再次conf.py):

def setup(app): 
    app.add_autodocumenter(SimpleDocumenter) 

然后,当你只是想显示方法的文档字符串使用以下格式在.txt或.rst文件中。只需使用auto将您的objname加上前缀即可。

.. autosimple:: mod.MyClass.my_method 
+0

任何想法是否这是[仍然是唯一的方法](http://stackoverflow.com/q/34074839/656912)? – orome