2011-10-19 4 views
9

私は特定の関数のdocstringだけを私のSphinxドキュメントに含めたいと思っています。しかしちょうどhttp://sphinx.pocoo.org/ext/autodoc.htmlSphinxドキュメンテーションにdocstringを含める

を使用して、関連クラスと機能を定義することなく、これらの詳細を表示するには、何もオプションがないように思えるshow *only* docstring in Sphinx documentationに概説ように私はクラスを作成しようとしましたが、私は、これはテンプレートで収まるかどうかはわかりません。

私は運がないautodoc-process-docstringイベントハンドラも試しました。

そうではなく(それが現在のように)私のドキュメントが表示さ:

This is my method doc string 

.txtファイルで私の現在のテンプレートは次のとおりです:

class module.MyClass(param) 

    This is the class doc string 

    my_method() 

     This is my method doc string 

は私がちょうど表示します

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

答えて

14

ソースを調べて実験した後、Sphinx 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ファイルに保存します。 objnameの先頭にautoを付けるだけです。

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

これが[まだ唯一の方法](http://stackoverflow.com/q/34074839/656912)であるかどうかはわかりますか? – orome

関連する問題