Можно ли сохранить длинные строки в сфинксе? - PullRequest
0 голосов
/ 10 мая 2018

Мой входной файл реструктурированного текста в Sphinx имеет длинную строку:

This is a long line text that I want to keep as a long single line. It should not be wrapped in the text output.

Используя текстовый конструктор Sphinx, я получаю следующий вывод:

This is a long line text that I want to keep as a long single line. It
should not be wrapped in the text output.

Сфинкс окутывает линию. Я хотел бы сохранить единую длинную очередь как есть. Это возможно?


Использование линейных блоков было предложено в этом ответе . Однако использование линейных блоков изменяет отступ строки. Я не смог найти способ сохранить отступы с помощью линейных блоков.

Для ввода:

Prev Line

| This is a long line text that I want to keep as a long single line. It should not be wrapped in the text output.

Next Line

Я получаю этот вывод:

Prev Line

   This is a long line text that I want to keep as a long single line. It should not be wrapped in the text output.

Next Line

Длинная строка сохраняется длинной, но теперь имеет отступ.


Мне не удалось найти настройку переноса строк в конфигурации Sphinx page .


Я использую sphinx-build версию 1.7.4, и я использую команду:

 sphinx-build -M text "." "_build"

Обновление:

Директива кодового блока также делает отступ длинной строки.

Ввод:

Prev Line

.. code-block:: text

  This is a long line text that I want to keep as a long single line. It should not be wrapped in the text output.

Next Line

Выход:

Prev Line

   This is a long line text that I want to keep as a long single line. It should not be wrapped in the text output.

Next Line

1 Ответ

0 голосов
/ 19 мая 2018

Обезьяно-патчинг рендеринга блоков строк для Text Writer работает для меня:

добавить это в conf.py

def my_visit_line_block(self, node):
    # type: (nodes.Node) -> None
    self.new_state(indent=0)
    self.lineblocklevel += 1

def setup(app):
    from sphinx.writers.text import TextTranslator
    TextTranslator.visit_line_block = my_visit_line_block

Очевидным недостатком является то, что он изменяет рендеринг всех блоков строк ...

Я недостаточно знаком с sphinx.writers.text (и documenttils), чтобы сразу увидеть, есть ли лучший способ, чем описанная выше мартышка-патчинг.

Я мог бы вставить отступ через эту разметку:

| \    one
| \    two
| \    three

но быть вынужденным изменить наценку плохо.

...