Обзор
CLI для пакетной конвертации Markdown в PDF: один PDF на каждый исходный файл с расширением .md, таблицы и блоки Mermaid проходят через конвейер препроцессинга и дальше в HTML или XeLaTeX в зависимости от выбранного рендерера.
Исходники в монорепозитории сайта: каталог projects/md_printer/. Публичное зеркало и issues: github.com/xitren/md_printer.
Ключевые возможности
- Пакетная обработка файлов и каталогов с рекурсивным поиском файлов .md
- Рендеринг fenced-блоков mermaid в SVG перед сборкой PDF
- Режим vscode-like (по умолчанию): HTML и headless Chromium для визуальной близости к превью редактора
- Режим pandoc: маршрут через Pandoc и XeLaTeX
- Docker-образ со всеми системными зависимостями (Pandoc, TeX, Node, Mermaid CLI, Chromium)
- Набор примеров в examples/quickstart, дымовый прогон по ним в CI
Документация и готовность к OSS
В репозитории есть полный набор базовых артефактов по методологии из статьи про подготовку open source проектов:
- README.md (английский), LICENSE (MIT), CHANGELOG.md, CONTRIBUTING.md, CODE_OF_CONDUCT.md, SECURITY.md, AUTHORS, GOVERNANCE.md
- docs/index.md, docs/usage.md, docs/testing.md, docs/architecture.md, ADR в docs/adr/
- каталог examples/ с тремя сценариями быстрого старта
- GitHub Actions: матрица Python 3.11 и 3.12, Ruff, pytest с порогом покрытия, pip-audit, Gitleaks, Docker-smoke по примерам
- Dependabot для pip и GitHub Actions
- Трекинг оставшихся ручных шагов в RELEASE_READINESS.md (topics на GitHub, социальное превью, публикация в PyPI и т.д.)
Технический стек
- Язык: Python 3.11+
- Внешние инструменты: pandoc, XeLaTeX, пакет @mermaid-js/mermaid-cli (команда mmdc), Chromium
- Сборка и тесты: pyproject.toml, pytest, ruff, Docker / docker compose
- Вспомогательный сценарий пакетной печати из каталога in в out_ru: scripts/docker-batch-in-to-out_ru.ps1 (после docker compose build)
