图像与设计
在需要把 Mermaid 图或 Markdown…
将 Mermaid 图表或 Markdown 表格通过 mermaid-red API 转换为带主题样式的 PNG 图片。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
在需要把 Mermaid 图或 Mark特定
解决思路
- 确认脚本存在:SKILL_DIR=~/.claude/skills/diagram-to-image/scripts,检查 $SKILL_DIR/diagram-to-image.mjs(脚本使用 Node 18+ 内置 fetch,无需 npm install)
- 按决策树确定输出位置:1) 用户明确指定路径/文件名则直接用;2) 检测项目常见图片目录,按优先级 ls -d ./images ./assets ./img ./static ./public/images ./assets/images 取第一个存在的;3) 若在写文章/文档,找文档所在目录并视情况创建 images/ 子目录,按文档名+描述命名;4) 分析对话上下文(图表含义、相关文件、讨论主题)决定位置与命名;5) 无线索则用当前工作目录并按内容生成描述性文件名
- 生成有意义的文件名:flowchart+auth/login→auth-flow.png;sequenceDiagram+API→api-sequence.png;erDiagram→entity-relationship.png;pie 关于 X→x-distribution.png;gantt→project-timeline.png;对比表格→comparison-table.png;数据表格→data-table.png;规则为 kebab-case、2-4 个词、避免 diagram.png/image.png 这类泛化名、尽量含主题
- 转换前先分析上下文:检查当前工作目录、查找已有图片目录、分析图表/表格内容用于命名、考虑对话中提到的文件或主题
- 创建临时输入文件:Mermaid 用 cat > /tmp/diagram.mmd << 'DIAGRAM_EOF' ... DIAGRAM_EOF;Markdown 表格用 cat > /tmp/table.md << 'TABLE_EOF' ... TABLE_EOF
- 调用转换命令(API 自动识别 mermaid 或 table,命令相同):node ~/.claude/skills/diagram-to-image/scripts/diagram-to-image.mjs /tmp/diagram.mmd -o <output_path>.png;表格同理传 /tmp/table.md
- 可用选项:--theme <name>(default、dark、forest、neutral、ocean、emerald、midnight、slate、lavender、blueprint);--type <type>(auto 默认、mermaid、table);--scale <n>(1-4,默认 2 即 2x DPI);--bg <color>(默认 white,可用 transparent);--server <url>(默认 https://diagramless.xyz)
- 也支持从 stdin 管道输入:echo "graph TD; A-->B" | node ~/.claude/skills/diagram-to-image/scripts/diagram-to-image.mjs -o out.png;cat /tmp/table.md | node ... --type table -o table.png
- 转换完成后向用户报告:1) 图片保存的完整路径;2) 简要说明为何选该位置;3) 脚本打印的文件大小(字节);4) 提示用户可指定其他位置
- 错误处理:API 服务器不可达时脚本会打印清晰错误;自动识别内容类型失败时显式加 --type mermaid 或 --type table;本地开发/测试用 --server http://localhost:3000
适用边界 · 注意事项
- 需要完全离线、不能访问外部 API 服务的环境(依赖 diagramless.xyz 或自建服务器)
- 没有 Node.js 18+ 运行环境时无法使用内置 fetch 的脚本