SuperAPI AI 工具集

excalidraw-diagrams

通用与其它

查看项目

更新于 10-16 00:21

技能介绍

用途:在需要创建或更新 Excalidraw 图表时提供指导,确保布局间距正确,颜色、字体和形状使用一致且合乎逻辑。

主要能力与要求:文本应正确放入形状内部,而非作为独立文本元素(除非有意如此);箭头和线条需正确锚定/连接到形状,避免浮动,使对象移动后连接仍保持完整;图表内容需保存到文件并给出文件路径。每次会话首次调用 create_view 前需先调用 read_me,以获取调色板、相机尺寸、布局规则和元素格式参考。若未启用 Excalidraw MCP,需请用户添加,HTTP MCP URL 为 https://excalidraw-mcp-app.vercel.app/mcp,文档见 https://github.com/excalidraw/excalidraw-mcp。

工作流选择:仅内联预览(create_view)适用于只在对话中查看、不需要文件的情况,可用 label 标注形状并用 cameraUpdate 引导注意力;仅文件输出(Python 脚本)适用于需要 .excalidraw 文件打开、分享、编辑或保存的情况,跳过 create_view,用 scripts/generate_excalidraw.py 生成文件并提供路径,文件可拖入 excalidraw.com、Excalidraw 桌面应用或带 Excalidraw 扩展的 VS Code;两者兼有则分别独立构建,无数据桥接。

关键限制:形状上的 label 属性仅适用于 create_view,导出到 Excalidraw 或从 create_view 检查点数据写入 .excalidraw 文件时文本不会保留,不要用 export_to_excalidraw 生成可分享图表,它可能静默丢失所有文本。原生 Excalidraw 中形状内文本由两个关联元素表示,手写 JSON 易出错,建议使用 Python 脚本。

Python 脚本:scripts/generate_excalidraw.py 可生成包含所有必需字段的原生 .excalidraw 文件,支持内联于 bash heredoc 或作为库导入。关键函数包括 labeled_rect(返回形状与居中绑定文本)、rect、txt、bound_arrow(将箭头锚定到两个形状并修改其 boundElements)、arrow、ellipse、diamond、write_scene。

箭头锚定:默认箭头自由浮动,移动形状会留下箭头,应使用 bound_arrow 自动处理双向绑定。连接点 fixedPoint 值:top=[0.5,0]、right=[1,0.5]、bottom=[0.5,1]、left=[0,0.5],任意 [fx,fy] 均可,0,0 为形状左上角,1,1 为右下角。注意:调用 bound_arrow 前形状必须已存在于 elements 中;相连形状之间至少保持 60px 间距,否则箭头会重叠并穿过方框,脚本会警告;避免使用与可连接形状重叠的大背景矩形,如需分区背景,应在所有绑定箭头之后添加,或改用独立文本标签和颜色编码方框。内联 create_view 工作流中,直接在箭头元素上使用 startBinding/endBinding 与 fixedPoint。

隐私:若图表包含潜在敏感信息(如详细网络图、可识别信息等)且用户要求上传到 excalidraw.com,应先警告这会使图表公开可访问,并询问是否继续。