pythonプロジェクトのドキュメントを生成するためにSphinxを使用しています。出力HTMLは、docstringに存在する改行を保持していません。例:
コード
def testMethod(arg1,arg2):
"""
This is a test method
Arguments:
arg1: arg1 description
arg2: arg2 description
Returns:
None
"""
print "I am a test method"
スフィンクスO/P:
TestModule.testMethod(arg1, arg2)
This is a test method
Arguments: arg1: arg1 description arg2: arg2 description
Returns: None
それを修正する方法はありますか?
一般的に再構成されたテキストの使用
| Vertical bars
| like this
改行を保持する
メインの.rstファイルに次を追加する場合:
.. |br| raw:: html
<br />
次に、マークアップに|br|
は、HTML専用の改行を作成します。
I want to break this line here: |br| after the break.
From: http://docutils.sourceforge.net/FAQ.html#how-to-indicate-a-line-break-or-a-significant-newline
この答えは遅れていますが、他の人にとってはまだ役に立つかもしれません。
DocstringでreStructuredText
を使用できます。これは次のようになります
:param arg1: arg1 description
:type arg1: str
:param arg2: arg2 description
:type arg2: str
ただし、サンプルの外観から、docstringにGoogleスタイルを使用しているようです( http://google-styleguide.googlecode.com/svn/trunk/pyguide.html?showone=Comments#Comments =)。
Sphinxはこれらをネイティブにサポートしていません。ただし、 https://pypi.python.org/pypi/sphinxcontrib-napoleon でGoogleおよびNumpyスタイルのdocstringを解析するnapoleon
という名前の拡張機能があります。
この拡張機能を使用するには、Sphinxの'sphinxcontrib.napoleon'
(通常conf.py
)のextension
-リストにdoc/source/conf.py
を追加する必要があるため、次のようになります。
extensions = [
'sphinx.ext.autodoc',
'sphinxcontrib.napoleon',
'sphinx.ext.doctest',
]
あなたの場合、あなたは書くことができます:
def testMethod(arg1,arg2):
"""
This is a test method
| Arguments:
| arg1: arg1 description
| arg2: arg2 description
| Returns:
| None
"""
print "I am a test method"
私の特定のケースでは、autodocにdoc文字列(""" my doc string """
)。最終的に\n
改行を追加する必要があるすべての場所:
This is the first line\n
and this is the second line\n
Sphinxが作成する段落が見えるように、CSSスタイルシートのp
要素にパディングまたはマージンがあることを確認してください。
多くの場合、レンダリングの問題は、Sphinxが生成するものを正確に制御しようとするよりもスタイルシートを微調整することで簡単に修正できます。