8 production-ready skills for enhanced Claude Code workflows: 1. github-ops - Comprehensive GitHub operations via gh CLI and API - PR/issue management, workflow automation, API interactions 2. markdown-tools - Document conversion to markdown - PDF/Word/PowerPoint/Confluence → Markdown with WSL support 3. mermaid-tools - Mermaid diagram generation - Extract and render diagrams from markdown to PNG/SVG 4. statusline-generator - Claude Code statusline customization - Multi-line layouts, cost tracking, git status, colors 5. teams-channel-post-writer - Microsoft Teams communication - Adaptive Cards, formatted announcements, corporate standards 6. repomix-unmixer - Repomix file extraction - Extract from XML/Markdown/JSON formats with auto-detection 7. skill-creator - Skill development toolkit - Init, validation, packaging scripts with privacy best practices 8. llm-icon-finder - AI/LLM brand icon finder - 100+ AI model icons in SVG/PNG/WEBP formats Features: - Individual skill installation (install only what you need) - Progressive disclosure design (optimized context usage) - Privacy-safe examples (no personal/company information) - Comprehensive documentation with references - Production-tested workflows Installation: /plugin marketplace add daymade/claude-code-skills /plugin marketplace install daymade/claude-code-skills#<skill-name> Version: 1.2.0 License: See individual skill licenses 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
175 lines
5.1 KiB
Markdown
175 lines
5.1 KiB
Markdown
# Mermaid Diagram Generation - Setup and Troubleshooting
|
|
|
|
## Table of Contents
|
|
- [Prerequisites](#prerequisites)
|
|
- [Script Locations](#script-locations)
|
|
- [Features](#features)
|
|
- [Environment Variables](#environment-variables)
|
|
- [Troubleshooting](#troubleshooting)
|
|
- [Validation](#validation)
|
|
|
|
## Prerequisites
|
|
|
|
### 1. Node.js and mermaid-cli
|
|
|
|
Install mermaid-cli globally:
|
|
```bash
|
|
npm install -g @mermaid-js/mermaid-cli
|
|
```
|
|
|
|
Verify installation:
|
|
```bash
|
|
mmdc --version
|
|
```
|
|
|
|
### 2. Google Chrome for WSL2
|
|
|
|
Install Chrome and dependencies:
|
|
```bash
|
|
# Add Chrome repository
|
|
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
|
|
echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" | sudo tee /etc/apt/sources.list.d/google-chrome.list
|
|
|
|
# Update and install Chrome
|
|
sudo apt update
|
|
sudo apt install -y google-chrome-stable
|
|
|
|
# Install required dependencies for WSL2
|
|
sudo apt install -y libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 libxtst6 xauth xvfb fonts-liberation libxml2-utils
|
|
```
|
|
|
|
Verify Chrome installation:
|
|
```bash
|
|
google-chrome-stable --version
|
|
```
|
|
|
|
### 3. Python 3
|
|
|
|
The extraction script requires Python 3 (usually pre-installed on Ubuntu):
|
|
```bash
|
|
python3 --version
|
|
```
|
|
|
|
## Script Locations
|
|
|
|
The mermaid diagram tools are bundled with this skill in the `scripts/` directory:
|
|
- Main script: `~/.claude/skills/mermaid-tools/scripts/extract-and-generate.sh`
|
|
- Python extractor: `~/.claude/skills/mermaid-tools/scripts/extract_diagrams.py`
|
|
- Puppeteer config: `~/.claude/skills/mermaid-tools/scripts/puppeteer-config.json`
|
|
|
|
All scripts should be run from the `scripts/` directory to properly locate dependencies.
|
|
|
|
## Features
|
|
|
|
### Smart Sizing
|
|
|
|
The script automatically adjusts diagram dimensions based on filename patterns:
|
|
|
|
- **Timeline/Gantt charts**: 2400x400 (wide and short)
|
|
- **Architecture/System/Caching diagrams**: 2400x1600 (large and detailed)
|
|
- **Monitoring/Workflow/Sequence/API diagrams**: 2400x800 (wide for process flows)
|
|
- **Default**: 1200x800 (standard size)
|
|
|
|
### Sequential Numbering
|
|
|
|
Diagrams are automatically numbered sequentially (01, 02, 03, etc.) in the order they appear in the markdown file.
|
|
|
|
### High-Resolution Output
|
|
|
|
Default scale factor is 2x for high-quality output. Can be customized with environment variables.
|
|
|
|
## Environment Variables
|
|
|
|
Override default dimensions and scaling:
|
|
|
|
| Variable | Default | Description |
|
|
|----------|---------|-------------|
|
|
| `MERMAID_WIDTH` | 1200 | Base width for generated PNGs |
|
|
| `MERMAID_HEIGHT` | 800 | Base height for generated PNGs |
|
|
| `MERMAID_SCALE` | 2 | Scale factor for high-resolution output |
|
|
|
|
### Examples
|
|
|
|
```bash
|
|
# Custom dimensions
|
|
MERMAID_WIDTH=1600 MERMAID_HEIGHT=1200 ./extract-and-generate.sh "file.md" "output_dir"
|
|
|
|
# High-resolution mode for presentations
|
|
MERMAID_WIDTH=2400 MERMAID_HEIGHT=1800 MERMAID_SCALE=4 ./extract-and-generate.sh "file.md" "output_dir"
|
|
|
|
# Ultra-high resolution for print materials
|
|
MERMAID_SCALE=5 ./extract-and-generate.sh "file.md" "output_dir"
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### Browser Launch Failures
|
|
|
|
**Symptom**: Errors about Chrome not launching or Puppeteer failures
|
|
|
|
**Solution**:
|
|
1. Verify Chrome is installed: `google-chrome-stable --version`
|
|
2. Check Chrome path in script matches: `/usr/bin/google-chrome-stable`
|
|
3. Ensure all dependencies are installed (see Prerequisites section 2)
|
|
4. Verify puppeteer-config.json exists at the expected location
|
|
|
|
### Permission Issues
|
|
|
|
**Symptom**: "Permission denied" when running the script
|
|
|
|
**Solution**:
|
|
```bash
|
|
chmod +x ~/.claude/skills/mermaid-tools/scripts/extract-and-generate.sh
|
|
```
|
|
|
|
### No Diagrams Found
|
|
|
|
**Symptom**: Script reports "No .mmd files found" or "No diagrams extracted"
|
|
|
|
**Solution**:
|
|
1. Verify the markdown file contains Mermaid code blocks (` ```mermaid`)
|
|
2. Check the markdown file path is correct
|
|
3. Ensure Mermaid code blocks are properly formatted
|
|
|
|
### Python Extraction Failures
|
|
|
|
**Symptom**: Errors during the extraction phase
|
|
|
|
**Solution**:
|
|
1. Verify Python 3 is installed: `python3 --version`
|
|
2. Check the markdown file encoding (should be UTF-8)
|
|
3. Review the markdown file for malformed Mermaid code blocks
|
|
|
|
### Output Quality Issues
|
|
|
|
**Symptom**: Generated images are too small or low quality
|
|
|
|
**Solution**:
|
|
Use environment variables to increase dimensions and scale:
|
|
```bash
|
|
MERMAID_WIDTH=2400 MERMAID_HEIGHT=1800 MERMAID_SCALE=3 ./extract-and-generate.sh "file.md" "output_dir"
|
|
```
|
|
|
|
### Diagram-Specific Sizing Issues
|
|
|
|
**Symptom**: Specific diagram types don't render well with default sizes
|
|
|
|
**Solution**:
|
|
The script has smart sizing for common patterns, but you can override for specific cases:
|
|
```bash
|
|
# For very wide sequence diagrams
|
|
MERMAID_WIDTH=3000 MERMAID_HEIGHT=1000 ./extract-and-generate.sh "file.md" "output_dir"
|
|
|
|
# For very tall flowcharts
|
|
MERMAID_WIDTH=1200 MERMAID_HEIGHT=2400 ./extract-and-generate.sh "file.md" "output_dir"
|
|
```
|
|
|
|
## Validation
|
|
|
|
The script automatically validates generated PNG files by:
|
|
1. Checking file size is non-zero
|
|
2. Verifying the file is a valid PNG image
|
|
3. Reporting actual dimensions
|
|
4. Displaying file size in bytes
|
|
|
|
Look for ✅ validation messages in the output to confirm successful generation. |