0055 — Antora для Sphinx
На работе грядёт новый проект, и пока требования не ясны, решил посмотреть, какие инструменты есть для управления несколькими версиями документации сразу. Сразу скажу, что ищу варианты только Docs-as-Code, поэтому всякие расширения Confluence, Documenterra и прочие в принципе не рассматриваю.
Посмотрел Antora — проект написан на JavaScript, для работы требует раковую опухоль NodeJS, исходники документации могут быть только в формате AsciiDoc.
Принцип работы этой утилиты показался мне довольно интересным.
-
Создаётся отдельный проект, в котором самый главный файл —
antora-plyabook.yml.В этом файле описывается несколько параметров, влияющих на сборку:
site— параметры собираемого сайта.-
content— источники содержимого. Здесь происходит самое интересное:content.sources.url— ссылка на репозиторий с документацией в формате AsciiDoc;content.sources.branches— список ссылок, на основе которых формируются версии документации: названия веток или тегов, можно использовать указательHEAD.
ui.bundle.url— ссылка на ZIP-архив с темой;ui.bundle.snapshot— требование всегда собирать проект с самой новой версией темы.
-
Создаётся отдельный проект для темы. Там только шаблоны. В качестве отправной точки рекомендуется использовать репозиторий Antora Default UI.
-
Создаются проекты документации в формате AsciiDoc, к которым предъявляются дополнительные требования.
Сначала мне такая структура показалась довольно сложной. Однако, логика авторов Antora понятна. Они пытались решить следующие задачи:
- Отделение документации от оформления.
- Использование одного UI для всех источников, описанных в
antora-playbook.yml. -
Поддержка многоверсионности, причём для каждого компонента в рамках одного проекта можно вести свою историю веток.
Мне кажется, это самая важная особенность Antora. Ничего подобного для Sphinx я не видел.
Поискал похожий инструмент для Sphinx, и ничего не нашёл. Неужели свободная ниша для OpenSource-решения, которое изменит всё?