1实现原理 · 为什么它能做到
把 .canvas 定义为只含两个顶层数组的 JSON 文件:nodes 与 edges(均可选)。
skills/json-canvas/SKILL.md
- `nodes` (optional): Array of node objects
这里在做什么:先给出最小合法骨架,后续所有节点/边都挂在这两个数组下。
节点分四类:text / file / link / group,各自附加字段(text、file+subpath、url、label/background)。
skills/json-canvas/SKILL.md
- `group` - Visual container for other nodes
这里在做什么:用类型枚举覆盖画布上会出现的所有元素,编辑时有明确落点。
节点共有必填属性 id/type/x/y/width/height 与可选 color;数组顺序即 z-index(先底后顶)。
skills/json-canvas/SKILL.md
| `id` | Yes | string | Unique identifier for the node |
这里在做什么:把几何与层级规则写死,保证生成的画布可被应用正确渲染。
边 edges 连接节点,支持 fromSide/toSide/fromEnd/toEnd/color/label 等可选修饰。
skills/json-canvas/SKILL.md
| `toEnd` | No | string | `arrow` | Shape at edge end |
这里在做什么:把「谁连谁、从哪边、有无箭头、什么颜色」全部参数化。
颜色 canvasColor 支持 hex 或预设编号 "1"-"6",且预设具体值故意不定义。
skills/json-canvas/SKILL.md
Note: Specific color values for presets are intentionally undefined, allowing applications to use their own brand colors.
这里在做什么:让配色随宿主应用品牌走,规范只固定语义档位。
约定 ID 为 16 位小写十六进制(64 位随机值),并要求全局唯一。
skills/json-canvas/SKILL.md
This format is a 16-character lowercase hex string (64-bit random value).
这里在做什么:统一 ID 生成口径,避免跨节点/边冲突。
给出布局指南:坐标可为负、y 向下增大、推荐尺寸表与 20-50px 内边距、50-100px 节点间距。
skills/json-canvas/SKILL.md
- Space nodes 50-100px apart for readability
这里在做什么:把「排版好看」量化为可执行的间距/尺寸建议。
结尾附 8 条校验规则(唯一 id、引用存在、必填字段、枚举取值合法等),并外链 JSON Canvas Spec 1.0。
skills/json-canvas/SKILL.md
1. All `id` values must be unique across nodes and edges
这里在做什么:给出可自查的正确性清单,降低生成非法文件概率。
2核心能力
01创建/编辑 Obsidian 兼容的 .canvas 文件
02生成文本节点(Markdown 内容)
03文件/附件节点(含指向标题或块的 subpath)
04链接节点(外部 URL)
05分组容器节点(label 与背景图/背景样式)
06边连接:方向、端点形状、颜色、标签
07颜色:hex 或预设编号 1-6
08布局与校验:推荐尺寸、间距与 8 条合法性规则
4管控建议与判定依据
建议配套管控措施
面向 Agent
可自动加载
面向管理者
登记来源与版本
判定依据(文件路径与关键语句摘要)
- SKILL.md: 纯提示词指令与规则文本,无脚本执行与外部影响
审计说明: 绿色:本 skill 目录仅一份 Markdown 指令,无脚本执行、无网络请求、无凭证读取、无写盘代码;不读取任何外部输入去执行,纯知识/规范编排。按统一分档准则取绿色。
5第二遍独立确认
- [ok] 是否存在可执行脚本 — 目录清单仅 SKILL.md;扫描「执行外部程序」0 命中。
- [ok] URL 命中性质 — §3 5 条 URL 均为规范链接(jsoncanvas.org/github.com/obsidianmd)或示例值(obsidian.md/example.com),非运行期请求。
- [ok] 凭证/环境变量 — 0 命中,正文无 env/keychain 读取。
- [ok] 写盘 — 0 命中;skill 只描述生成 JSON 内容,实际落盘由宿主完成。
- [ok] 能力声明与内容相符 — description 声称创建/编辑 .canvas,正文含完整节点/边/示例/校验,无夸大。
- [ok] 规范引用可定位 — 结尾 References 与开头 Overview 均指向 JSON Canvas Spec 1.0,口径一致。
6结论
适合: 需要为 Obsidian/支持 JSON Canvas 的应用生成思维导图、流程图或视觉画布的用户与代理。
不适合: 需要运行时校验/渲染 .canvas,或使用其它画布格式的场景。
Install Agent-Ready
① Verified Mirror 2026-10-10
Option A · Direct DownloadDownload json-canvas.tar.gz
sha256:
Option B · Copy Guide for Agentc5f293ab4ece925e…agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
② Upstream GitHub
GitHub Repo ↗
Pinned to commit dd0bf35595.