关于 obsidian-canvas-creator
obsidian-canvas-creator 是将文本整理为结构化 Obsidian Canvas 文件的技能。它支持思维导图和自由布局,并提供节点、连线、配色与验证方面的指引。
主要功能
- 01支持思维导图和自由布局
- 02从文本提取主题与关系
- 03创建 Canvas 节点、连线和分组
- 04检查 ID、间距和 JSON 结构
适用场景
- 01将文章转换为 Canvas
- 02把笔记整理成思维导图
- 03梳理复杂主题之间的关系
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ timlai666/ skills --skill obsidian-canvas-creator安装后在 Claude Code 中输入/obsidian-canvas-creator确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/template-freeform-grouped.canvastemplate-mindmap-simple.canvasreferences/canvas-spec.mdlayout-algorithms.md详细介绍
Obsidian Canvas 创建器
将文本内容转换为结构化的 Obsidian Canvas 文件,支持思维导图和自由布局。
何时使用此技能
- 用户要求根据文本创建画布、思维导图或可视化图表
- 用户想要以空间方式组织信息
- 用户提及“Obsidian Canvas”或类似的可视化工具
- 将结构化内容(文章、笔记、大纲)转换为可视化格式
核心工作流
1. 分析内容
阅读并理解输入内容:
- 确定主题及层级关系
- 提取要点、事实和支持性细节
- 留意已有结构(标题、列表、章节)
2. 确定布局类型
询问用户选择,或根据上下文推断:
思维导图布局:
- 从中心向外辐射的结构
- 父子关系
- 层级清晰
- 适用于:头脑风暴、主题探索、层级内容
自由布局:
- 自定义定位
- 灵活的关系
- 多种连接类型
- 适用于:复杂网络、非层级内容、自定义排列
3. 规划结构
思维导图:
- 确定中心概念(根节点)
- 绘制主要分支(主题)
- 组织次级分支(子主题)
- 放置叶节点(细节)
自由布局:
- 将相关概念分组
- 确定连接模式
- 规划空间区域
- 考虑视觉流向
4. 生成画布
按照 Canvas 规范创建 JSON:
创建节点:
- 分配唯一的 8-12 位十六进制 ID
- 根据内容长度设置合适的尺寸
- 采用一致的配色方案
- 确保坐标不重叠
创建边:
- 连接父子关系
- 使用合适的箭头样式
- 为复杂关系添加标签
- 选择线条样式(层级关系用直线,交叉引用用曲线)
分组(可选):
- 为相关节点创建可视化容器
- 使用柔和的背景颜色
- 添加描述性标签
5. 应用布局算法
思维导图布局计算:
详细算法请参阅 references/layout-algorithms.md。关键原则:
- 将根节点置于 (0, 0)
- 径向分布主要节点
- 根据同级节点数量调整次级节点间距
- 保持最小间距:水平 320px,垂直 200px
自由布局原则:
- 从逻辑分组入手
- 分组之间留出清晰的间隔
- 用曲线边连接不同分组
- 平衡整个画布的视觉重量
6. 验证并输出
输出前:
验证清单:
- 所有节点都有唯一 ID
- 坐标没有重叠(检查距离是否大于节点尺寸加间距)
- 所有边都引用有效的节点 ID
- 分组(如有)都带有标签
- 颜色格式一致(十六进制或预设编号)
- JSON 转义正确(中文引号:双引号使用『』,单引号使用「」)
输出格式:
- 完整、有效的 JSON Canvas 文件
- 不附加任何解释性文本
- 可直接导入 Obsidian
节点尺寸指南
根据文本长度调整尺寸:
- 短文本(<30 个字符):220 × 100 px
- 中等长度文本(30-60 个字符):260 × 120 px
- 长文本(60-100 个字符):320 × 140 px
- 很长的文本(>100 个字符):320 × 180 px
配色方案
预设颜色(推荐):
"1"- 红色(警告、重要内容)"2"- 橙色(待办事项)"3"- 黄色(问题、笔记)"4"- 绿色(正向内容、已完成事项)"5"- 青色(信息、细节)"6"- 紫色(概念、抽象内容)
自定义十六进制颜色:
用于保持品牌一致性或应用特定主题。始终使用大写格式:"#4A90E2"
关键规则
-
引号处理:
- 中文双引号 → 『』
- 中文单引号 → 「」
- 英文双引号 →
\"
-
ID 生成:
- 8-12 个字符的随机十六进制字符串
- 所有节点和边的 ID 必须唯一
-
Z-index 顺序:
- 先输出分组(底层)
- 然后输出子分组
- 最后输出文本/链接节点(顶层)
-
间距要求:
- 最小水平间距:节点中心之间相距 320px
- 最小垂直间距:节点中心之间相距 200px
- 计算时考虑节点尺寸
-
JSON 结构:
- 顶层仅包含
nodes和edges数组 - 不添加额外的包装对象
- 输出中不包含注释
- 顶层仅包含
-
不使用 Emoji:
- 节点文本中不要使用任何 Emoji 符号
- 使用颜色编码或文本标签来区分视觉元素
示例
简单的思维导图请求
用户:「创建一张关于太阳系行星的思维导图」
流程:
- 确定中心主题:「太阳系」
- 主要分支:内行星、外行星、矮行星
- 次级节点:各个行星及其关键事实
- 应用放射状布局
- 生成间距合理的 JSON
自由布局内容请求
用户:「将这篇文章转换为画布」+ [文章文本]
流程:
- 提取文章结构(引言、正文部分、结论)
- 确定关键概念及其关系
- 在空间上对相关部分进行分组
- 添加带标签的边进行连接
- 应用自由布局,并划分清晰的区域
参考文档
- Canvas 规范:
references/canvas-spec.md- 完整的 JSON Canvas 格式规范 - 布局算法:
references/layout-algorithms.md- 两种布局类型的详细定位算法
以下情况请加载这些参考文档:
- 需要了解边缘情况的规范细节
- 实现复杂的布局计算
- 排查验证错误
制作优质 Canvas 的提示
- 保持文本简洁:每个节点都应便于快速浏览(最好少于 2 行)
- 使用层级结构:按重要性和关系分组
- 保持画布平衡:分布节点,避免聚集
- 策略性地使用颜色:用颜色表达含义,而非仅作装饰
- 建立有意义的连接:仅添加有助于说明关系的边
- 在 Obsidian 中测试:确认输出能够正确打开
应避免的常见问题
- 节点重叠(务必检查间距)
- 引号转义不一致(会导致 JSON 解析失败)
- 缺少分组标签(会导致侧边栏导航问题)
- 节点中的文本过多(长内容请使用文件节点)
- ID 重复(每个 ID 都必须唯一)
- 节点未连接(除非有意将其作为孤立节点)
评论
支持 Markdown