mermaid-render · git:20260529.6a42d35 · 2026-05-29 · sha256 346696e80c15e961

mermaid-render git:20260529.6a42d35A

Immutable. This exact content is served forever at /api/v1/blob/346696e80c15e961.

---
name: mermaid-render
description: "Рендерит mermaid-диаграммы в PNG/SVG/PDF через локальный mermaid-cli (mmdc). Используй когда пользователь просит отрендерить mermaid, сделать PNG из диаграммы, превратить mermaid в картинку, конвертировать .mmd в png/svg/pdf, извлечь mermaid из markdown в картинки, сохранить блок mermaid как изображение, нарисовать диаграмму. Принимает .mmd / .mermaid (одна диаграмма) или .md (рендерит каждый блок ```mermaid в отдельную картинку). Поддерживает темы (default/forest/dark/neutral), цвет фона и масштаб для retina. Без Docker и MCP - чистый локальный mmdc."
argument-hint: "<входной_файл> [-o OUTPUT] [-t THEME] [-b BG] [-f png|svg|pdf] [-s SCALE]"
allowed-tools:
  - Bash
  - Read
  - Glob
---

# /mermaid-render - Рендер mermaid-диаграмм в изображения

Тонкая обёртка над `mmdc` (mermaid-cli). Внутри Puppeteer + Chrome headless + mermaid.js, как в peng-shawn/mermaid-mcp-server, но без MCP-сервера и без Docker.

## Зависимости

- `mmdc` (`@mermaid-js/mermaid-cli`) - проверь: `mmdc --version`. Если нет - `npm install -g @mermaid-js/mermaid-cli`.
- Python 3 в PATH (для скрипта-обёртки).

## Использование

```bash
python ~/.claude/skills/mermaid-render/scripts/render.py <вход> [опции]
```

### Сценарии входа

| Расширение | Поведение |
|-----------|-----------|
| `.mmd` / `.mermaid` | Один файл с диаграммой -> одна картинка |
| `.md` / `.markdown` | Извлекает все блоки ` ```mermaid ` -> по картинке на блок (`<имя>-1.png`, `<имя>-2.png`, ...) |

### Опции

| Флаг | По умолчанию | Назначение |
|------|--------------|-----------|
| `-o, --output` | рядом с входом | Выходной файл (для .md - префикс перед `-N.<ext>`) |
| `-t, --theme` | `default` | `default` / `forest` / `dark` / `neutral` |
| `-b, --bg` | `white` | `white`, `transparent`, `#F0F0F0` |
| `-f, --format` | `png` | `png` / `svg` / `pdf` |
| `-w, --width` | mmdc default 800 | Ширина в пикселях |
| `-H, --height` | mmdc default 600 | Высота в пикселях |
| `-s, --scale` | `2` | Puppeteer scale - 2 для retina |
| `--verbose` | выкл | Показать вывод mmdc |

## Примеры

```bash
# Простой PNG рядом с входом, дефолтная тема, scale=2
python ~/.claude/skills/mermaid-render/scripts/render.py ./diagram.mmd

# Тёмная тема, прозрачный фон, SVG
python ~/.claude/skills/mermaid-render/scripts/render.py ./diagram.mmd -t dark -b transparent -f svg

# Все блоки mermaid из markdown в PNG-файлы
python ~/.claude/skills/mermaid-render/scripts/render.py ./README.md

# Указать выходной путь
python ~/.claude/skills/mermaid-render/scripts/render.py ./d.mmd -o ./out/result.png
```

## Алгоритм работы для Claude

1. Уточни у пользователя входной файл, если не передан явно. Поддерживаются `.mmd`, `.mermaid`, `.md`.
2. Если пользователь не указал параметры рендера - используй дефолты (PNG, default-тема, белый фон, scale=2).
3. Запусти скрипт через Bash:
   ```bash
   python ~/.claude/skills/mermaid-render/scripts/render.py "<путь>" [-t ...] [-b ...] [-f ...]
   ```
4. Скрипт печатает список созданных файлов с размерами - покажи пользователю.
5. Если пользователь хочет встроить картинки в Markdown/Word - после рендера используй существующие скилы (`md-to-docx` для Word, обычные `![]()` ссылки для Markdown).

## Поведение при ошибках

- mmdc не найден - скрипт выйдет с кодом 2 и подскажет команду установки.
- Входной файл не найден или неподдерживаемое расширение - код 2 с понятным сообщением.
- mmdc вернул ошибку (синтаксис mermaid) - код мммдц проброшен, stderr показан.
- В .md нет блоков ```mermaid - код 1, предупреждение пользователю.

## Связь с другими скилами

- `mermaid-diagrams` - руководство как СОСТАВЛЯТЬ читаемые mermaid-диаграммы. Этот скилл делает шаг рендера ПОСЛЕ составления.
- `md-to-visio` - конвертация mermaid из markdown в нативный Visio (.vsdx). Использовать когда нужен редактируемый чертеж, а не растровая картинка.
- `md-to-docx` - подключение результирующих PNG к Word-документу.