mermaid-renderlisted
Install: claude install-skill aksh-3141/claude-toolshed
# /mermaid-render
User request: "$ARGUMENTS"
## Task
Render Mermaid diagrams from an existing `.mmd` file or a `.md` file with Mermaid blocks to SVG image files.
## Process
1. **Resolve Plugin Path**:
```bash
find "$HOME/.claude/plugins/cache" -type d -name "mermaid" -path "*/skills/mermaid" 2>/dev/null | head -1
```
If empty, run fallback:
```bash
find "$HOME" -maxdepth 8 -type d -name "mermaid" -path "*/skills/mermaid" 2>/dev/null | head -1
```
Use the returned path as `PLUGIN_DIR`.
2. **Ensure Dependencies**:
```bash
bash "$PLUGIN_DIR/scripts/ensure-deps.sh"
```
If `.claude/mermaid.json` does **not** exist, display a one-time nudge before continuing:
> First time using the mermaid plugin? Run `/mermaid-config` to pick a theme and output settings. Using defaults for now (zinc-light, `./diagrams`).
3. **Read Config**: If `.claude/mermaid.json` exists, read:
- `theme` (default: zinc-light)
- `output_directory` (default: ./diagrams)
- `output_format` (default: svg)
**Resolve output path:**
- If `output_directory` is `"same"` AND an input file path is known:
`OUTPUT_DIR=$(dirname {input_file})`
- If `output_directory` is `"same"` AND no argument was provided:
`OUTPUT_DIR=./diagrams`
- Otherwise:
`OUTPUT_DIR=<output_directory from config>`
4. **Determine Input**:
- `.mmd` file → render directly
- `.md` file → extract Mermaid blocks first:
`node "$PLUGIN_DIR/scripts/extract_merma