我正在使用Sphinx为python项目生成文档。 输出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"
Sphinx O / P:
TestModule.testMethod(arg1, arg2)
This is a test method
Arguments: arg1: arg1 description arg2: arg2 description
Returns: None
知道怎么解决吗?
答案 0 :(得分:40)
一般情况下,在重组文本中使用
| Vertical bars
| like this
保持换行符
答案 1 :(得分:22)
如果您将以下内容添加到主.rst文件中:
.. |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
答案 2 :(得分:14)
这个答案来得晚,但也许它对其他人仍然有用。
您可以在文档字符串中使用reStructuredText
。这看起来像
:param arg1: arg1 description
:type arg1: str
:param arg2: arg2 description
:type arg2: str
从您的示例的外观来看,您似乎正在使用Google Style for docstrings(http://google-styleguide.googlecode.com/svn/trunk/pyguide.html?showone=Comments#Comments)。
Sphinx本身并不支持这些。但是有一个名为napoleon
的扩展程序可以在https://pypi.python.org/pypi/sphinxcontrib-napoleon解析Google和Numpy样式的文档字符串。
要使用此扩展程序,您必须将'sphinxcontrib.napoleon'
附加到Sphinx extension
中的conf.py
- 列表中(通常为doc/source/conf.py
),因此它会变成
extensions = [
'sphinx.ext.autodoc',
'sphinxcontrib.napoleon',
'sphinx.ext.doctest',
]
答案 3 :(得分:9)
在你的情况下你可以写:
def testMethod(arg1,arg2):
"""
This is a test method
| Arguments:
| arg1: arg1 description
| arg2: arg2 description
| Returns:
| None
"""
print "I am a test method"
答案 4 :(得分:5)
在我的特定情况下,我试图让autodoc读取文档字符串(""" my doc string """
)。我最终在我需要添加换行符的地方使用\n
:
This is the first line\n
and this is the second line\n
答案 5 :(得分:0)
请确保您的CSS样式表在p
元素上具有填充或边距,以使Sphinx创建的段落可见。
在许多情况下,通过调整样式表,比尝试完全控制Sphinx生成的内容更容易解决渲染问题。
答案 6 :(得分:0)
查看您是否在 conf.py
文件中启用了 Support for NumPy and Google style docstrings 扩展:
extensions = ['sphinx.ext.autodoc', 'sphinx.ext.napoleon']