2011-08-11 11 views
37

私はPythonプロジェクトのドキュメントを生成するためにSphinxを使用しています。 出力htmlは、ドキュメントストリングに存在する改行を保持していません。 例:スフィンクスを使用してpythonドキュメントを生成するときに改行を保存する方法

コード

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 

それを修正するためにどのように任意のアイデア?再編テキストで一般的に

+0

例のようなものになるように、あなたのスフィンクスconf.py(通常doc/source/conf.py)でextension -listに'sphinxcontrib.napoleon'を追加する必要が拡張子を使用するには。再構成されたテキストフォーマットはSphinxによって正しく保存されています。 –

+0

追加された例。 –

+0

docstringsがGoogle形式であり、たくさんの\ nを追加したくないときにこれを行う方法については何か考えていますか? –

答えて

31

私の特定のケースでは

+8

追加しないでください| 2つの別々の行(2つの改行が必要な場合)... |の後に2つの空白があることを確認してください。 これは次のようになります。 |(スペース)(スペース) 改行 – Augiwan

5

を改行を維持するために

| Vertical bars 
| like this 

を使用し、私はドキュメンテーション文字列(""" my doc string """)を読むためにautodocのを取得しようとしていました。あなたがメインの.rstファイルに以下を追加した場合

This is the first line\n 
and this is the second line\n 
+0

あなたのドキュメントストリングがGoogle形式である場合にこれを行う方法に関する考え方はありますか? –

18

::私はどこでも私は改行を追加するために必要な\nを使用して終了

.. |br| raw:: html 

    <br /> 

次に、あなたのマークアップであなたがに|br|に追加することができますHTMLのためだけに改行を作成してください。

I want to break this line here: |br| after the break. 

から:http://docutils.sourceforge.net/FAQ.html#how-to-indicate-a-line-break-or-a-significant-newlineあなたが書くことができますあなたの場合は

+0

これは図のキャプションでは機能しますが、垂直バーは機能しませんでした。 – Dennis

+3

| br |テキストの中にスペースで囲む必要があります。 –

8

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

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

    | Returns: 
    | None 
    """ 
    print "I am a test method" 
10

この答えが遅れて来たが、多分それはまだ他の人に役立つことでしょう。

reStructuredTextをドキュメントストリングに使用できます。これは、しかし、あなたがドキュメンテーション文字列(http://google-styleguide.googlecode.com/svn/trunk/pyguide.html?showone=Comments#Comments)のためのGoogleのスタイルを使用しているようで、あなたの例のルックスから

:param arg1: arg1 description 
:type arg1: str 
:param arg2: arg2 description 
:type arg2: str 

ようになります。

スフィンクスはそれらをネイティブにサポートしていません。しかし、napoleonという拡張子があり、GoogleとNumpyスタイルのdocstringsをhttps://pypi.python.org/pypi/sphinxcontrib-napoleonで解析します。

あなたはそれが必要な

extensions = [                 
'sphinx.ext.autodoc',              
'sphinxcontrib.napoleon',             
'sphinx.ext.doctest',                            
] 
+0

これは、ガイドラインがスフィンクスを使用することを推奨するにもかかわらず、なぜ私はスフィンクスがGoogle Style correcltyをレンダリングしないのか理解しようとしている間、私が探していた正確な答えでした。 –

+2

Sphinx 1.3以降、ナポレオンの拡張子はsphinx.ext.napoleonでSphinxでパッケージ化されます。 sphinxcontrib.napoleon拡張子はSphinx <= 1.2でも引き続き動作します。 – ash84

+1

改行の問題はどのように解決されますか? – minerals

関連する問題