Об этом проекте
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.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.