Как сохранить разрывы строк при создании документов python с использованием sphinx

Я использую 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 

Любая идея, как это исправить?

5 Solutions collect form web for “Как сохранить разрывы строк при создании документов python с использованием sphinx”

В целом при использовании реструктурированного текста

 | Vertical bars | like this 

держать разрывы строк

Если вы добавите следующее в свой основной файл .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

Этот ответ приходит поздно, но, возможно, он будет полезен другим.

Вы можете использовать reStructuredText в своих документах. Это будет выглядеть примерно так:

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

Однако из-за внешнего вида вашего примера кажется, что вы используете стиль Google для docstrings ( http://google-styleguide.googlecode.com/svn/trunk/pyguide.html?showone=Comments#Comments ).

Сфинкс не поддерживает их. Тем не менее существует расширение, называемое napoleon которое анализирует Docstrings стиля Google и Numpy на странице https://pypi.python.org/pypi/sphinxcontrib-napoleon .

Чтобы использовать расширение, вам нужно добавить 'sphinxcontrib.napoleon' в список extension в вашем Sphinx conf.py (обычно 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 
  • добавление xml-контента в сфикс-сгенерированный документ
  • Замены в кодовых блоках Sphinx
  • Autodoc params?
  • получение сфинкса для распознавания правильной подписи
  • Получение sphinx для отображения параметров функции при обёртывании декоратором
  • Значения сфинксов для атрибутов, указанных как Нет
  • В генераторе док-станции Sphinx я могу добавить целый пакет (рекурсивно) к индексу?
  • Sphinx - объединение автомодуля и автокласса
  • Python - лучший язык программирования в мире.