От CommonMark к Turing-complete языку
Проект Quarkdown (репозиторий iamgio/quarkdown) позиционирует себя не просто как расширенный Markdown, а как современная система типографики. В отличие от стандартных парсеров, Quarkdown строится на базе CommonMark и GFM, но добавляет слой программирования. Это позволяет использовать функции, переменные, циклы и условные операторы прямо внутри текстовых файлов.
Ключевая особенность — возможность создавать собственные библиотеки и функции. Например, вызов .somefunction {arg1} {arg2} или определение логики через .function {greet} делает контент динамическим. Это решает проблему статичности обычного Markdown, позволяя генерировать сложные структуры данных и верстку «на лету».
Мультиформатность: один исходник — много целей
Quarkdown поддерживает экспорт в несколько форматов через единый источник. Выбор целевой платформы осуществляется функцией .doctype в начале документа. Поддерживаются:
- HTML (включая режим «Continuous flow» для сайтов типа Notion/Obsidian).
- PDF (через paged.js, с полной поддержкой стилей).
- Slides (интерактивные презентации на базе reveal.js).
- Docs (вики и техническая документация).
- Plain и Markdown (экспорт в GFM).
Скорость компиляции заявлена как высокая: официальная вики проекта, состоящая из более чем 100 поддокументов, собирается примерно за 2 секунды. Также доступна функция живого предпросмотра (-p -w), что ускоряет итерации при верстке.
Сравнение с LaTeX, Typst и AsciiDoc
Quarkdown пытается занять нишу между простотой Markdown и мощью LaTeX. Ниже приведено сравнение ключевых характеристик:
| Характеристика | Quarkdown | LaTeX | Typst | AsciiDoc |
|---|---|---|---|---|
| Кривая обучения | Низкая (на базе Markdown) | Высокая | Средняя | Средняя |
| Скриптинг/Логика | Полная (Turing-complete) | Ограниченная (TikZ/PGF) | Есть | Частичная |
| Экспорт в PDF | Да (через Chromium) | Да (стандарт) | Да (стандарт) | Да |
| Экспорт в Презентации | Встроенный (reveal.js) | Третьи стороны | Третьи стороны | Третьи стороны |
| Экспорт в Вики/Доки | Встроенный | Нет | Нет | Да |
Установка и интеграция
Инструмент написан на Java (Kotlin) и требует JDK. Установка доступна через популярные менеджеры пакетов:
- Linux/macOS:
brew install quarkdown-labs/quarkdown/quarkdownили скрипт установки. - Windows:
scoop install quarkdownили PowerShell-скрипт.
Для экспорта в PDF требуется браузер на базе Chromium (например, chrome-headless-shell), который устанавливается автоматически при использовании официальных скриптов. Для разработчиков предусмотрены расширения для VS Code и IntelliJ IDEA, а также интеграция с GitHub Actions для CI/CD пайплайнов.
Почему это важно
Quarkdown закрывает разрыв между написанием текста и его финальной версткой. Для технических писателей, академических исследователей и создателей документации это означает возможность использовать мощь программирования (переменные, условия, циклы) для генерации контента, не отказываясь от простоты Markdown. Это особенно актуально для создания масштабируемых баз знаний и книг, где требуется автоматизация рутинных задач по форматированию.
Источник: Github ↗
