J'utilise Sphinx pour générer des documents pour un projet python. Le code HTML de sortie ne conserve pas les sauts de ligne qui sont présents dans la docstring. Exemple:
Code
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
Toute idée de comment résoudre ce problème ?
En général, dans l'utilisation de texte restructuré
| Vertical bars
| like this
pour garder les sauts de ligne
Si vous ajoutez ce qui suit à votre fichier .rst principal:
.. |br| raw:: html
<br />
Ensuite, dans votre balisage, vous pouvez ajouter |br|
pour créer des sauts de ligne uniquement pour HTML.
I want to break this line here: |br| after the break.
De: http://docutils.sourceforge.net/FAQ.html#how-to-indicate-a-line-break-or-a-significant-newline
Cette réponse arrive tard, mais peut-être qu'elle sera toujours utile aux autres.
Vous pouvez utiliser reStructuredText
dans vos docstrings. Cela ressemblerait à quelque chose comme
:param arg1: arg1 description
:type arg1: str
:param arg2: arg2 description
:type arg2: str
D'après l'apparence de votre exemple, il semble que vous utilisez le style Google pour les docstrings ( http://google-styleguide.googlecode.com/svn/trunk/pyguide.html?showone=Comments#Comments =).
Sphinx ne les prend pas nativement en charge. Il existe cependant une extension nommée napoleon
qui analyse les docstrings de style Google et Numpy à https://pypi.python.org/pypi/sphinxcontrib-napoleon .
Pour utiliser l'extension, vous devez ajouter 'sphinxcontrib.napoleon'
à la liste extension
- de votre Sphinx conf.py
(généralement doc/source/conf.py
), donc ça devient quelque chose comme
extensions = [
'sphinx.ext.autodoc',
'sphinxcontrib.napoleon',
'sphinx.ext.doctest',
]
Dans votre cas, vous pouvez écrire:
def testMethod(arg1,arg2):
"""
This is a test method
| Arguments:
| arg1: arg1 description
| arg2: arg2 description
| Returns:
| None
"""
print "I am a test method"
Dans mon cas particulier, j'essayais d'obtenir un autodoc pour lire une chaîne de doc (""" my doc string """
). J'ai fini par utiliser \n
partout où je devais ajouter un saut de ligne:
This is the first line\n
and this is the second line\n
Assurez-vous que votre feuille de style CSS a un remplissage ou des marges sur l'élément p
afin que les paragraphes créés par Sphinx soient visibles.
Dans de nombreux cas, les problèmes de rendu peuvent être résolus plus facilement en modifiant la feuille de style plutôt qu'en essayant de contrôler exactement ce que Sphinx génère.