Asciidoctor — это программный инструмент с открытым исходным кодом, реализованный на языке Ruby, предназначенный для обработки документов, написанных в разметке AsciiDoc. Он преобразует исходный текст в структурированную модель документа и далее в различные форматы вывода, включая HTML5, EPUB3, PDF, DocBook и справочные страницы системы Unix. Asciidoctor был впервые выпущен в 2013 году и служит более производительной и расширяемой альтернативой исходной реализации AsciiDoc на Python. Он развивается через сообщество разработчиков и поддерживает множество дополнений, плагинов и средств для автоматизации.
Основное назначение Asciidoctor — облегчить написание технической, справочной и общей документации таким образом, чтобы автор мог сосредоточиться на содержании, а не на форматировании, сохраняя высокий уровень читаемости исходного текста. Исторически AsciiDoc как язык разметки появился ещё в 2002 году, а Asciidoctor расширил его возможности за счёт более быстрых парсеров, безопасных режимов исполнения и поддержки современных инструментов публикации. Asciidoctor используется в разнообразных сценариях: автоматическая генерация документации, встроенные системы построения сайтов, книги, электронные издания, мануалы и отчёты.
- Поддержка множества форматов вывода: HTML5, EPUB3, PDF, DocBook, man-страницы и др., включая отдельные конвертеры и плагины.
- Высокая производительность: Asciidoctor может обрабатывать большие документы; скорость значительно выше, чем у оригинальной Python-версии AsciiDoc.
- Безопасность и режимы защищённости: встроенные безопасные режимы, ограничивающие доступ к файловой системе и выполнение произвольного кода, что важно при серверной обработке.
- Расширяемая архитектура: API для Ruby, доступность через JVM и JavaScript (AsciidoctorJ, Asciidoctor.js), поддержка плагинов, расширений и собственных конвертеров.
- Темизация и оформление выходных форматов: настройка внешнего вида PDF-документов, стилей, заголовков, обложек, оглавлений, метаданных, поддержки SVG и шрифтов.
- Доступность и читабельность исходного текста: AsciiDoc-разметка должна оставаться понятной без визуализации, форматирование вводится минимально, что облегчает редактирование и хранение версий.
- Широкое применение: использование в системах документации, на GitHub, GitLab, в публикации технической и научной литературы, в проектах с автоматической публикацией и непрерывной интеграцией.