[ PROMPT_NODE_25640 ]
json-canvas
[ SKILL_DOCUMENTATION ]
# JSON Canvas 工具
此工具使 Claude Code 能够创建和编辑 Obsidian 及其他应用程序中使用的有效 JSON Canvas 文件 (`.canvas`)。
## 概述
JSON Canvas 是一种用于无限画布数据的开放文件格式。Canvas 文件使用 `.canvas` 扩展名,并遵循 [JSON Canvas Spec 1.0](https://jsoncanvas.org/spec/1.0/) 标准的有效 JSON。
## 文件结构
Canvas 文件包含两个顶级数组:
{
"nodes": [],
"edges": []
}
- `nodes` (可选):节点对象数组
- `edges` (可选):连接节点的边对象数组
## 节点
节点是放置在画布上的对象。共有四种节点类型:
- `text` - 带有 Markdown 的文本内容
- `file` - 指向文件/附件的引用
- `link` - 外部 URL
- `group` - 其他节点的视觉容器
### Z-Index 排序
节点按数组中的 z-index 排序:
- 第一个节点 = 底层(显示在其他节点下方)
- 最后一个节点 = 顶层(显示在其他节点上方)
### 通用节点属性
所有节点共享以下属性:
| 属性 | 必填 | 类型 | 描述 |
|-----------|----------|------|-------------|
| `id` | 是 | string | 节点的唯一标识符 |
| `type` | 是 | string | 节点类型:`text`, `file`, `link`, 或 `group` |
| `x` | 是 | integer | X 轴位置(像素) |
| `y` | 是 | integer | Y 轴位置(像素) |
| `width` | 是 | integer | 宽度(像素) |
| `height` | 是 | integer | 高度(像素) |
| `color` | 否 | canvasColor | 节点颜色(参见颜色部分) |
### 文本节点
文本节点包含 Markdown 内容。
{
"id": "6f0ad84f44ce9c17",
"type": "text",
"x": 0,
"y": 0,
"width": 400,
"height": 200,
"text": "# Hello Worldnn这是 **Markdown** 内容。"
}
| 属性 | 必填 | 类型 | 描述 |
|-----------|----------|------|-------------|
| `text` | 是 | string | 带有 Markdown 语法的纯文本 |
### 文件节点
文件节点引用文件或附件(图片、视频、PDF、笔记等)。
{
"id": "a1b2c3d4e5f67890",
"type": "file",
"x": 500,
"y": 0,
"width": 400,
"height": 300,
"file": "Attachments/diagram.png"
}
{
"id": "b2c3d4e5f6789012",
"type": "file",
"x": 500,
"y": 400,
"width": 400,
"height": 300,
"file": "Notes/Project Overview.md",
"subpath": "#Implementation"
}
| 属性 | 必填 | 类型 | 描述 |
|-----------|----------|------|-------------|
| `file` | 是 | string | 系统内的文件路径 |
| `subpath` | 否