7

現在、既存の (不完全な) ドキュメントをすべてSphinxに移行しています。

問題は、ドキュメンテーションがPython docstringを使用しており(モジュールは C で書かれていますが、おそらく問題にはなりません)、クラスのドキュメンテーションを Sphinx で使用できる形式に変換する必要があることです。

sphinx.ext.autodocがありますが、現在のドキュメント文字列をドキュメントに自動的に配置します。現在のdocstringに基づいて( RST )でソースファイルを生成したいので、手動で編集および改善できます。

docstring を Sphinx の RST に変換するにはどうすればよいですか?

4

3 に答える 3

13

autodoc は RST のみを生成しますが、そこからそれを取得する公式の方法はありません。それを取得するための最も簡単なハックは、sphinx.ext.autodoc.Documenter.add_lineメソッドを変更して、取得した行を発行することでした。

私が望むのは一度だけの移行なので、stdout への出力で十分です。

def add_line(self, line, source, *lineno):
    """Append one line of generated reST to the output."""
    print(self.indent + line)
    self.directive.result.append(self.indent + line, source, *lineno)

autodoc は、実行中に生成された RST を stdout に出力し、それを別の場所にリダイレクトまたはコピーするだけで済みます。

于 2010-04-26T09:46:07.153 に答える
0

私の知る限り、これを行うための自動ツールはありません。したがって、私のアプローチは、関連するモジュール (sphinc.ext.autodoc に基づく) を読み取り、doc 文字列をファイル (適切にフォーマットされたもの) にスローする小さなスクリプトを作成することです。

于 2010-04-25T07:42:03.423 に答える