9

Sphinx ドキュメントに特定の関数の docstring だけを含めたいと思います。ただし、 http://www.sphinx-doc.org/en/master/usage/extensions/autodoc.htmlを使用して、関連するクラスと関数の定義なしでこれらの詳細を表示するオプションはないようです。

Sphinx のドキュメントに *only* docstring を表示しますか? で説明されているように、クラスを作成しようとしました。しかし、これがテンプレートにどのように適合するかはわかりません。

また、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
4

1 に答える 1

14

ソースを調べて実験した後、Sphinx 1.1 でそれを行う方法を次に示します。

conf.py ファイルで、新しい MethodDocumenter サブクラスを作成します。ここで、新しい「objtype」を設定し、docstring がインデントされていないことを確認し、タイトルを削除できます。

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)

次に、メソッドの docstring を表示したいだけの場合は、.txt または .rst ファイルで次の形式を使用します。objname の前に auto を付けるだけです。

.. autosimple:: mod.MyClass.my_method
于 2011-10-20T07:20:08.647 に答える