Подтвердить что ты не робот

Вывод на печать для документации на основе Sphinx

Я нашел себя в прецеденте, где помимо генерации HTML и PDF из моих Sphinx источников документации я также хотел бы создать Markdown исходные файлы reStructuredText.

Мое предварительное исследование не нашло поддержки ядра или расширения для этого в Sphinx. Помимо ручного использования pandoc или создания нового расширения Sphinx для задачи, существует ли более простое/более интегрированное решение для этого?

4b9b3361

Ответ 1

Я не нашел ничего, что могло бы взять файлы reStructuredText и преобразовать их в Markdown, кроме Pandoc, поэтому я написал пользовательский сценарий для Docutils (ссылка реализация reStructuredText и то, на что построен Sphinx). Код доступен на GitHub.

Обратите внимание, что это только начальная реализация: он обрабатывает любой документ reStructuredText без ошибок (протестирован против тестового документа standard.txt из исходного репозитория Docutils), но многие из конструкций reStructuredText (например, замены, необработанные директивы и т.д.) являются не поддерживается и поэтому не включается в вывод Markdown. Я надеюсь добавить поддержку ссылок, кодовых блоков, изображений и таблиц: любая помощь в этом более чем приветствуется - просто продолжайте и развивайте код.

Кажется, что для добавления другого формата записи/вывода в Sphinx вам нужно добавить "строитель" с помощью extension.

Ответ 2

Обновление от ноября 18: теперь доступен sphinx-markdown-builder - благодаря @Jam Risser:

Монтаж

pip3 install sphinx-markdown-builder

зависимости

Python 3

использование

Загрузите расширение в конфигурации.

conf.py

extensions = [
    'sphinx_markdown_builder'
]

При использовании Recommonmark, убедитесь, что вы явно игнорируете файлы сборки, поскольку они будут конфликтовать с системой.

conf.py

exclude_patterns = [
    'build/*'
]

Создание файлов разметки с помощью Makefile

make markdown

Создание файлов разметки с помощью команды sphinx-build

cd docs
sphinx-build -M markdown ./ build

Рекомендации

пс. Устаревший исходный ответ (поскольку теперь доступен sphinx-markdown-builder): Создан запрос функции для прямой поддержки вывода Markdown на сайте проекта Sphinx: https://github.com/sphinx-doc/sphinx/issues/4219 Спасибо всем, кто проголосовал за это запрос GitHub - это имело значение!

Ответ 3

Если вы хотите использовать pandoc, почему бы вам просто не изменить Makefile Sphinx, когда вы запускаете sphinx-quickstart.py в первый раз, чтобы преобразовать reStructuredText в Markdown?
Это самое простое решение, хотя решение Chris должно работать, если вы включите его в Makefile.