plantuml-renderer
PlantUML Renderer
将包含 PlantUML 代码的输入渲染为图表文件,支持文本输入与文件输入。
使用场景
- 用户明确要求“渲染 PlantUML / 生成 UML 图 / 导出 svg/png/txt/utxt”。
- 用户提供了任意包含有效 PlantUML 代码块(
@startuml ... @enduml)的内容。 - 输入不一定是
.puml,也可以是 Markdown、Word 文档提取文本等。
前提条件(必须先检查)
- 必须验证 Java 可用:
java -version - 必须确认 JAR 存在:
./assets/plantuml.jar - 如果缺少 Java 或 JAR,停止渲染并明确告知缺失项。
标准工作流
-
接收输入
- 支持两类输入:
- 用户直接粘贴的文本。
- 用户提供的文件路径。
- 支持两类输入:
-
提取 PlantUML 代码
- 从输入中提取完整
@startuml ... @enduml代码块。 - 若没有任何有效代码块,返回明确错误并提示用户补充有效 PlantUML 代码。
- 从输入中提取完整
-
确认输出格式
- 询问用户输出格式(如
svg、png、txt、utxt)。 - 用户未指定时,默认使用
svg。
- 询问用户输出格式(如
-
构造渲染命令
- 命令参数需参考
./references/cli_man.txt。 - 推荐使用
--format <name>,也可使用--svg/--png/--txt/--utxt。
- 命令参数需参考
-
执行渲染并生成文件
- 默认输出命名规则:
- 如果输入是文件:
<input_filename>.<format> - 如果输入是粘贴文本:
output.<format>
- 如果输入是文件:
- 若一个输入中有多个
@startuml块,PlantUML 可能按_001、_002追加后缀输出,属于正常行为。
- 默认输出命名规则:
-
清理中间文件
- 渲染完成后,删除过程中产生的所有中间文件,仅保留最终目标输出文件。
- 需清理的中间文件包括:
- 为粘贴文本输入临时创建的
.puml文件。 - PlantUML 渲染过程中产生的临时文件或辅助文件(如
.cmapx等)。
- 为粘贴文本输入临时创建的
- 不得删除的文件:
- 用户原始输入文件(无论是
.puml、.md还是其他格式)。 - 最终目标输出文件(如
.svg、.png、.atxt、.utxt)。
- 用户原始输入文件(无论是
- 清理前应先确认目标输出文件已成功生成。
-
ASCII 文本格式特例
- 当输出格式是
txt或utxt(纯文本图)时,必须参考:./references/ascii_guide.md
- 输出扩展名通常为
.atxt或.utxt,应在结果说明中明确实际生成文件名。
- 当输出格式是
命令模板
以下命令均以技能目录为当前工作目录为前提。
文件输入
java -jar "./assets/plantuml.jar" --format svg "<input_file>"
java -jar "./assets/plantuml.jar" --format png "<input_file>"
java -jar "./assets/plantuml.jar" --format txt "<input_file>"
java -jar "./assets/plantuml.jar" --format utxt "<input_file>"
文本输入(通过 stdin)
java -jar "./assets/plantuml.jar" --svg -pipe > "output.svg"
如需 ASCII:
java -jar "./assets/plantuml.jar" --txt -pipe > "output.atxt"
java -jar "./assets/plantuml.jar" --utxt -pipe > "output.utxt"
关键规则
- 优先保证“提取代码块 + 正确格式 + 成功落盘”三件事。
- 不要假设输入是完整
.puml文件;只要代码块有效就应处理。 - 若命令执行失败,返回原始错误并给出可操作修复建议(Java、JAR 路径、语法错误、Graphviz 依赖等)。
- 对语法检查可使用:
java -jar "./assets/plantuml.jar" --check-syntax "<input_file_or_dir>"
快速检查清单
-
java -version成功 -
./assets/plantuml.jar存在 - 已提取至少一个有效
@startuml ... @enduml - 已确认输出格式(默认
svg) - 已执行渲染命令并确认输出文件存在
- 若为
txt/utxt,已参考./references/ascii_guide.md - 已清理所有中间文件,仅保留目标输出文件
More from cruldra/skills
tauri-v2
Tauri v2 项目开发助手 - 提供 CLI 项目管理、最佳实践指导和代码生成。适用于 (1) 创建和管理 Tauri v2 项目 (2) 开发桌面和移动应用 (3) 配置构建和分发流程 (4) 实现安全的前后端通信 (5) 应用架构设计和性能优化。
15pandoc
当用户需要对某个文档进行格式转换时(例如将 Markdown 转换为 DOCX、PDF、HTML 等)使用该技能。
12refine-dev
协助开发基于 Refine 框架的 React 应用。提供项目初始化、核心配置、数据提供者(Data Providers)、认证(Auth Provider)以及 UI 库集成的指导。专注于使用 shadcn/ui 构建现代化的后台管理系统。
11dri-text-analysis
使用 DRI 文本分析法(Data-Rule-Interaction)对自然语言需求描述进行逐词拆解与领域建模。将非结构化的业务需求文本降维为数据(D)、规则(R)、交互(I)三个维度的结构化架构抽象,直接产出可用于系统设计的概念表格。适用于需求分析、领域语言提取、架构设计前的文本解析,以及将长篇需求文档转化为清晰的开发任务拆解。
9vite-starter
使用 Vite 创建现代前端项目,支持 React、Vue、Svelte、Solid、Preact、Lit、Qwik 和 Vanilla JS,可选 TypeScript。当用户需要初始化新的前端项目、搭建 SPA、创建组件库、设置现代构建工具时使用此技能。触发场景:用户说"创建 vite 项目"、"新建 react/vue/svelte 应用"、"初始化前端项目"、"搭建 spa"、"用 vite 起一个项目"、"create vite project"、"new frontend app",或明确提及 Vite、HMR、快速构建工具时。
7writing-plans
当你有一个规范或多步骤任务的需求时,在接触代码之前使用
4