mcpField
P
plantuml

plantuml

github.com/xenodium开发14861 次安装14 周前更新
代码仓库

关于 plantuml

此技能将近期交互内容转为 PlantUML 图表,并渲染为透明背景的 PNG 图片。它使用 Emacs 前景色设置图中文字和元素样式。

主要功能

  1. 01从对话内容提取图表信息
  2. 02生成 PlantUML 图表
  3. 03渲染透明背景 PNG 图片
  4. 04应用 Emacs 前景色

适用场景

  1. 01可视化对话中讨论的流程
  2. 02绘制上下文数据中的关系

安装

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

$npx skills add https://github.com/xenodium/emacs-skills --skill plantuml

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

详细介绍

使用 PlantUML 创建图表

使用 PlantUML 根据最近的交互上下文创建图表。生成一张透明背景的 PNG 图片,并以 Markdown 图片的形式输出,使其能够内嵌显示。

如何创建图表

  1. 从当前上下文中提取或推导出可用于绘制图表的数据。
  2. 如果此前在本次会话中尚未获知 Emacs 的前景色,请查询:
    emacsclient --eval '
    (face-foreground (quote default))'
    
    这会返回一个类似 "#eeffff" 的十六进制颜色值。后续所有图表都使用该颜色。
  3. 使用该颜色将 PlantUML 文件写入临时文件。
  4. 对该文件运行 PlantUML。
  5. 将结果作为 Markdown 图片单独输出一行:
    ![description](/tmp/agent-diagram-XXXX.png)
    
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 图片(![description](path))单独输出一行。
  • 根据数据选择合适的图表类型(时序图、类图、组件图、活动图、状态图等)。
  • 如有助于说明,请添加标题。
  • 如果最近的上下文中不存在可用于绘制图表的数据,请告知用户。

评论

支持 Markdown