web-dev-qa-db-ja.com

python sphinxを使用してドキュメントを生成するときに改行を保持する方法

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

それを修正する方法はありますか?

44
Saurabh Saxena

一般的に再構成されたテキストの使用

| Vertical bars
| like this

改行を保持する

42
Owen

メインの.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

23
geographika

この答えは遅れていますが、他の人にとってはまだ役に立つかもしれません。

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',                                                                                                             
]
14
karlson

あなたの場合、あなたは書くことができます:

def testMethod(arg1,arg2):
  """
  This is a test method

  | Arguments:
  | arg1: arg1 description
  | arg2: arg2 description

  | Returns:
  | None
  """
  print "I am a test method"
9
Francesco

私の特定のケースでは、autodocにdoc文字列(""" my doc string """)。最終的に\n改行を追加する必要があるすべての場所:

This is the first line\n
and this is the second line\n
5
Adam Hammouda

Sphinxが作成する段落が見えるように、CSSスタイルシートのp要素にパディングまたはマージンがあることを確認してください。

多くの場合、レンダリングの問題は、Sphinxが生成するものを正確に制御しようとするよりもスタイルシートを微調整することで簡単に修正できます。

0
Roger Dahl