mcpField
P
puml-plantuml

puml-plantuml

github.com/kaerez开发0161 次安装21 周前更新
代码仓库

关于 puml-plantuml

面向绘制和维护 PlantUML 图表的技能,涵盖语法指导、代码生成、诊断和本地渲染。它还能从图像还原 PUML,并提供跨平台的安装与渲染脚本。

主要功能

  1. 01覆盖多种图表类型的语法参考
  2. 02根据描述生成 PUML
  3. 03从图像还原 PUML
  4. 04检查并修复 PUML 错误
  5. 05跨平台本地渲染 PNG、SVG、PDF
  6. 06自动检测或安装渲染依赖

适用场景

  1. 01根据文字描述绘制架构或流程图
  2. 02把截图中的图表转为 PUML
  3. 03检查语法并本地生成图像或 PDF

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/kaerez/skills-plugins --skill puml-plantuml

安装后在 Claude Code 中输入/puml-plantuml确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
puml-plantuml.skill
README.md
references/
image-to-puml.md
local-rendering.md
syntax-quick-ref.md
scripts/
bootstrap.ps1
bootstrap.sh
render.py
setup.py

详细介绍

PUML-PlantUML 专家技能

深入掌握 PlantUML(涵盖官方参考文档全部 27 章)+ 跨平台本地渲染 + 图像→PUML 逆向工程。离线渲染。 支持任意操作系统。不假设任何路径。自动检测并安装完整的 Python + Java + PlantUML。


快速决策树

User request
├── "Create/draw a diagram from description"   → § Generate PUML
├── "Convert image/screenshot to PUML"         → § Image → PUML
├── "Render/preview/generate image from code"  → § Render Locally
├── "Fix/debug my PUML"                        → § Diagnose & Fix
└── "Explain syntax / how do I..."             → references/syntax-quick-ref.md

§ 首次运行 — 从零开始引导安装

引导脚本无需预先安装任何工具——它们会按正确顺序安装 Python → Java → PlantUML。每台机器只需运行一次。

macOS / Linux
bash scripts/bootstrap.sh           # install everything
bash scripts/bootstrap.sh --verify  # install + test render
Windows(PowerShell — 内置于 Windows 10/11)
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\scripts\bootstrap.ps1
.\scripts\bootstrap.ps1 -Verify
如果 Python 已可用
python3 scripts/render.py --detect      # show what's detected
python3 scripts/setup.py               # install Java + PlantUML
python3 scripts/setup.py --java        # ensure Java only
python3 scripts/setup.py --jar         # force JAR download
python3 scripts/setup.py --verify      # install + test render
python3 scripts/render.py --install-hint  # show manual steps

安装内容:

组件macOSLinuxWindows
Python 3.9+brewapt/dnf/pacman/snapwinget/choco/scoop
Java JRE 11+brew cask temurinapt/dnf/pacmanwinget Temurin/Zulu
PlantUMLbrewapt/dnf/pacman/snapwinget/choco/scoop
回退方案—~/.plantuml/plantuml.jar~/.plantuml/plantuml.jar

Java 检测位置:$JAVA_HOME、PATH、macOS /usr/libexec/java_home、 Azul/Zulu(zulu*)、Temurin、Homebrew OpenJDK、SDKMAN、/usr/lib/jvm/*。


§ 根据描述生成 PUML

步骤 1 — 识别图表类型:

请求中的关键词类型标签
调用顺序、API 流程、消息时序图@startuml
类、OOP、继承、方法类图@startuml
流程、工作流、流程图、步骤活动图(新版)@startuml
架构、服务、组件组件图@startuml
数据库、架构、表、实体ER 图@startuml
状态、生命周期、状态转换状态图@startuml
用例、参与者、用户故事用例图@startuml
对象、实例、运行时快照对象图@startuml
定时、信号、波形定时图@startuml
头脑风暴、概念图、主题思维导图@startmindmap
项目时间线、日程、里程碑甘特图@startgantt
工作分解、项目阶段WBS@startwbs
UI 表单、线框图、模型图Salt@startsalt
JSON 数据结构JSON@startjson
YAML 数据结构YAML@startyaml
网络拓扑、服务器、子网nwdiag@startuml + nwdiag {}
企业架构、ArchiMateArchimate@startuml + archimate 关键字
数学公式、方程、LaTeX数学@startmath / @startlatex
ASCII 艺术图Ditaa@startditaa

步骤 2 — 生成时使用 references/syntax-quick-ref.md 中的完整语法。 务必包含:title 行、skinparam shadowing false、所有箭头上的标签。

步骤 3 — 编写、验证并渲染:

cat > /tmp/diagram.puml << 'PUML'
@startuml
title My Diagram
... generated code ...
@enduml
PUML

python3 scripts/render.py /tmp/diagram.puml --check   # validate
python3 scripts/render.py /tmp/diagram.puml -f svg -o /tmp/  # render

§ 图像 → PUML(逆向工程)

  1. 查看图像 — 使用 view 工具或检查上传的图像
  2. 识别图表类型 — references/image-to-puml.md
  3. 提取元素 — 名称、标签、箭头、关系、基数
  4. 生成 PUML — 忠实还原,并使用正确的箭头类型
  5. 验证并渲染 — 与原图对比;必要时进行调整

图像分析指南:references/image-to-puml.md


§ 本地渲染

使用 scripts/render.py — 自动检测二进制文件或 JAR+Java,支持任意操作系统。

# macOS / Linux
python3 scripts/render.py diagram.puml                        # PNG
python3 scripts/render.py diagram.puml -f svg -o ./output/   # SVG
python3 scripts/render.py diagram.puml -f pdf -o ./output/   # PDF
cat diagram.puml | python3 scripts/render.py --stdin -f svg -n "name" -o /tmp/

# Windows
py scripts\render.py diagram.puml
py scripts\render.py diagram.puml -f svg -o .\output\

直接使用 CLI(如果 PATH 中有 plantuml):

plantuml -tsvg diagram.puml
plantuml -tpng -o ./output/ *.puml
plantuml -checkonly diagram.puml

渲染后使用 present_files 向用户展示输出文件。

完整选项、环境变量、格式和故障排查:references/local-rendering.md


§ 诊断和修复 PUML

python3 scripts/render.py diagram.puml --check
错误原因修复方法
No @startuml found缺少包装标记添加 @startuml / @enduml
Unknown command拼写错误或图表类型错误查看 syntax-quick-ref.md
箭头 →(Unicode)必须使用 ASCII使用 ->,不要使用 →
Cannot find class前向引用在使用前声明
Graphviz 错误未安装 dotbrew/apt install graphviz 或添加 !pragma layout smetana
未找到 PlantUML尚未安装bash scripts/bootstrap.sh
未检测到 JavaJDK 非标准设置 JAVA_HOME 环境变量
未找到 Python缺少 Pythonbash scripts/bootstrap.sh
Unicode 显示异常字符集问题plantuml -charset UTF-8 file.puml

§ 语法速查表(超快速)

完整参考(全部 27 章,共 2700 多行):references/syntax-quick-ref.md

时序图箭头:

->   sync          -->  response/dashed
->>  thin           -->> thin dashed
->x  lost           ->o  open arrowhead
<->  bidirectional  ->+  activate   -->-  deactivate
[->  incoming      ->]   outgoing

类关系:

<|--  inheritance    <|..  realization
o--   aggregation    *--   composition
-->   dependency     ..>   usage
--    association    --()  lollipop (provided interface)
"1" *-- "0..*"  : label  (with cardinality and label)

ER 基数(乌鸦脚表示法):

||   exactly one    o|   zero or one
o{   zero or more   |{   one or more

所有 @start 标签:

@startuml          most diagrams
@startmindmap      mind maps
@startgantt        gantt charts
@startwbs          work breakdown
@startsalt         wireframes
@startjson         JSON display
@startyaml         YAML display
@startmath         AsciiMath
@startlatex        LaTeX formula
@startditaa        Ditaa ASCII art

通用格式设置:

title My Title
skinparam shadowing false
skinparam monochrome true
!theme cerulean
left to right direction
!pragma layout smetana    ' no Graphviz needed

完整图表覆盖(PDF 中的全部 27 章)

章类型说明
1时序图完整支持:箭头、分组、激活、注释、自动编号、主框架、并行、构造型/标记、锚点、包围、隐藏底部边框
2用例图完整支持:参与者、扩展/包含、注释、包、业务用例、JSON 覆盖层
3类图完整支持:可见性、构造型、标记、泛型、棒棒糖接口、extends/implements 关键字、隐藏/显示/移除、$tags、命名空间
4对象图实例、关系、映射、关联对象
5活动图(旧版)旧式 (*) --> 语法、分支、同步条、分区
6活动图(新版)start/stop、if/else/elseif、switch/case、while、repeat、fork、split、泳道、SDL 形状、goto/label、连接器、条件样式
7组件图组件、接口、球形-插座形、分组、端口、隐藏未连接项
8部署图所有元素类型、嵌套、端口、圆角、方向
9状态图嵌套、并发、fork/join、历史、选择、图钉、展开、连线注释、内联颜色
10时序图鲁棒式、简洁式、二进制式、时钟式、模拟式;相对时间、锚点、高亮
11JSON显示、高亮、样式、最简示例
12YAML显示、高亮、别名、Creole
13网络图(nwdiag)网络、节点、地址、分组、精灵图、对等网络
14线框图(Salt)所有控件:按钮、输入框、下拉菜单、单选按钮、复选框、网格、树、选项卡、分组框、滚动框
15ArchiMatearchimate 关键字、连接点、宏、StdLib 集成
16甘特图任务、约束、里程碑、颜色、完成百分比、超链接、休息日、缩放、刻度
17思维导图OrgMode 和 Markdown 语法、左侧分支、多根节点、颜色、方向
18WBSOrgMode 语法、方向、颜色、箭头、自动换行
19数学公式AsciiMath(@startmath)、LaTeX/JLaTeXMath(@startlatex)、内联 <math> 标签
20ER 图(信息工程)实体、属性、PK/FK 标记、乌鸦脚关系
21通用命令注释、缩放、标题、题注、页眉、页脚、图例、换页、主框架、附录、pragma
22Creole粗体、斜体、等宽、删除线、下划线、波浪线;列表、标题、表格、链接、表情符号、HTML 标签、Unicode
23精灵图定义十六进制精灵图、内联 SVG 精灵图、从 StdLib 导入、OpenIconic、Font Awesome
24Skinparam全面的逐元素 skinparam + 类 CSS 的现代 <style> 替代方案 + 所有主题
25预处理变量、条件、while/loop、过程、函数、默认参数、不加引号、关键字参数、包含、子部分、主题、define、内置函数(%string、%strlen、%date、%random、%hsl_color 等)
26Unicode原生 UTF-8、&#XXXX; 和 <U+XXXX> 引用、表情符号 <:name:>、字符集标志
27StdLibArchiMate、AWS、Azure、C4、Kubernetes、Elastic、GCP、CloudOgu、Tupadr3/FontAwesome、EDGY
—Ditaa将 @startditaa ASCII 艺术转换为图表

参考文件

文件内容
references/syntax-quick-ref.md2700+ 行 — 全部 27 章的完整语法
references/image-to-puml.md图像→PUML 逆向工程的视觉分析指南
references/local-rendering.md设置、CLI 标志、格式、环境变量、故障排除

脚本

脚本用途
scripts/bootstrap.sh从这里开始 — macOS/Linux — 安装 Python→Java→PlantUML(无依赖)
scripts/bootstrap.ps1从这里开始 — Windows — PowerShell 5+,无需依赖
scripts/setup.pyPython 设置:检测/安装 Java + PlantUML;也会报告 Python
scripts/render.py跨平台渲染:自动检测 Python/二进制文件/JAR/Java

评论

支持 Markdown