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-решения, которое изменит всё?