关于 plantuml
此技能将近期交互内容转为 PlantUML 图表,并渲染为透明背景的 PNG 图片。它使用 Emacs 前景色设置图中文字和元素样式。
主要功能
- 01从对话内容提取图表信息
- 02生成 PlantUML 图表
- 03渲染透明背景 PNG 图片
- 04应用 Emacs 前景色
适用场景
- 01可视化对话中讨论的流程
- 02绘制上下文数据中的关系
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ xenodium/ emacs-skills --skill plantuml安装后在 Claude Code 中输入/plantuml确认已加载。
详细介绍
使用 PlantUML 创建图表
使用 PlantUML 根据最近的交互上下文创建图表。生成一张透明背景的 PNG 图片,并以 Markdown 图片的形式输出,使其能够内嵌显示。
如何创建图表
- 从当前上下文中提取或推导出可用于绘制图表的数据。
- 如果此前在本次会话中尚未获知 Emacs 的前景色,请查询:
这会返回一个类似emacsclient --eval ' (face-foreground (quote default))'"#eeffff"的十六进制颜色值。后续所有图表都使用该颜色。 - 使用该颜色将 PlantUML 文件写入临时文件。
- 对该文件运行 PlantUML。
- 将结果作为 Markdown 图片单独输出一行:

plantuml -tpng /tmp/agent-diagram-XXXX.puml
PlantUML 模板
@startuml
skinparam backgroundColor transparent
skinparam shadowing true
skinparam roundcorner 10
skinparam defaultFontName "Helvetica"
skinparam defaultFontColor #eeffff
' Set foreground color on all element types
skinparam titleFontColor #eeffff
skinparam sequenceLifeLineBorderColor #eeffff
skinparam sequenceArrowColor #eeffff
skinparam sequenceGroupHeaderFontColor #eeffff
skinparam sequenceGroupBorderColor #eeffff
skinparam sequenceDividerFontColor #eeffff
skinparam sequenceDividerBorderColor #eeffff
skinparam actorBorderColor #eeffff
skinparam actorFontColor #eeffff
skinparam participantFontColor #eeffff
skinparam participantBorderColor #eeffff
skinparam collectionsFontColor #eeffff
skinparam collectionsBorderColor #eeffff
skinparam noteFontColor #eeffff
skinparam noteBorderColor #eeffff
skinparam arrowFontColor #eeffff
skinparam classFontColor #eeffff
skinparam classBorderColor #eeffff
skinparam classAttributeFontColor #eeffff
skinparam packageFontColor #eeffff
skinparam packageBorderColor #eeffff
skinparam componentFontColor #eeffff
skinparam componentBorderColor #eeffff
skinparam interfaceFontColor #eeffff
skinparam interfaceBorderColor #eeffff
' ... diagram content ...
@enduml
规则
- 每次会话只查询一次 Emacs 前景色,并在后续图表中重复使用。仅当尚未获知该颜色时才再次查询。
- 始终使用
skinparam backgroundColor transparent设置透明背景。 - 文件名中始终使用时间戳(例如
/tmp/agent-diagram-$(date +%s).png)。不要使用描述性名称。 - 将查询到的前景色设置为
defaultFontColor,并设置所有相关的skinparam边框、箭头和文本颜色,确保图表在用户的 Emacs 背景上清晰可读。 - PlantUML 成功运行后,将 Markdown 图片(
)单独输出一行。 - 根据数据选择合适的图表类型(时序图、类图、组件图、活动图、状态图等)。
- 如有助于说明,请添加标题。
- 如果最近的上下文中不存在可用于绘制图表的数据,请告知用户。
评论
支持 Markdown