Об этом проекте

MermaidX — это библиотека Python и CLI для преобразования диаграмм Mermaid в SVG, PNG, PDF, JPEG, BMP, TGA и ASCII-арт. Она запускает настоящую JavaScript-библиотеку Mermaid v11 внутри встроенного движка QuickJS-ng (или опционального V8) с фиктивным DOM, устраняя необходимость в браузере, Node.js, npm или системных зависимостях. Это делает её быстрее и легче, чем официальный mermaid-cli, который использует headless Chrome через Puppeteer. Ключевые возможности: - Ноль системных зависимостей: установка через `pip install mermaidx`; готовые wheel-пакеты для Python 3.9+. - Несколько бэкендов: по умолчанию QuickJS-ng, опциональный V8 (в 2–4,5 раза быстрее) и нативные бэкенды на Rust через пакет `mmdr`. - Унифицированный API: `render()` возвращает ленивый кэшируемый объект `Diagram` с методами для SVG, PNG, PDF, ASCII, сырых RGBA, массивов numpy и сохранения в файлы. - CLI: `mermaidx -i input.mermaid -o output.svg` с опциями масштабирования, тем, формата PDF, CSS и встраивания шрифтов. - Интеграция с Jupyter: диаграммы отображаются в блокнотах автоматически. - Параллельный пакетный рендеринг с `render_many()` для задач, нагружающих CPU. - Вывод ASCII через чисто питоновский пакет `termaid`. - Встраивание шрифтов для SVG, точно соответствующих браузеру (опциональное дополнение). - Низкоуровневые утилиты, такие как `svg_to_png()`, для растеризации произвольных строк SVG. MermaidX поддерживает все типы диаграмм Mermaid v11, включая блок-схемы, диаграммы последовательностей, диаграммы классов, диаграммы состояний, ER-диаграммы, диаграммы Ганта, круговые диаграммы и git-графы. Проект распространяется под лицензией MIT и активно поддерживается; в его истории было переименование с `mmdc`, чтобы избежать конфликта с официальным бинарником Mermaid CLI.