mcpField
O
obsidian-canvas-creator

obsidian-canvas-creator

github.com/jst-well-dan生产力1036 次安装31 周前更新
代码仓库

关于 obsidian-canvas-creator

Obsidian Canvas Creator 可将文本整理为 MindMap 或自由布局的 Obsidian Canvas 文件,适合以图形方式组织笔记、文章和提纲,并提供布局规划与 JSON 校验指引。

主要功能

  1. 01将文本转换为 Canvas JSON
  2. 02创建 MindMap 或自由布局
  3. 03排列节点及其关系
  4. 04设置节点尺寸和颜色
  5. 05校验 ID、边和 JSON

适用场景

  1. 01将文章转为可视化画布
  2. 02用思维导图梳理主题与子主题
  3. 03以自由布局排列相关概念

安装

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

$npx skills add https://github.com/jst-well-dan/skill-box --skill obsidian-canvas-creator

安装后在 Claude Code 中输入/obsidian-canvas-creator确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

assets/
template-freeform-grouped.canvas
template-mindmap-simple.canvas
references/
canvas-spec.md
layout-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"

关键规则

  1. 引号处理:

    • 中文双引号 → 『』
    • 中文单引号 → 「」
    • 英文双引号 → \"
  2. ID 生成:

    • 生成 8-12 个字符的随机十六进制字符串
    • 所有节点和边的 ID 必须唯一
  3. Z-Index 顺序:

    • 先输出分组(底层)
    • 然后输出子分组
    • 最后输出文本/链接节点(顶层)
  4. 间距要求:

    • 最小水平间距:节点中心之间为 320px
    • 最小垂直间距:节点中心之间为 200px
    • 计算时考虑节点尺寸
  5. JSON 结构:

    • 顶层仅包含 nodes 和 edges 数组
    • 不要添加额外的包装对象
    • 输出中不要包含注释

示例

简单思维导图请求

用户:「创建一张关于太阳系行星的思维导图」

流程:

  1. 确定中心主题:「太阳系」
  2. 一级分支:内行星、外行星、矮行星
  3. 二级节点:各行星及其关键信息
  4. 应用放射状布局
  5. 生成间距合适的 JSON
自由形式内容请求

用户:「将这篇文章转换为画布」+ [文章文本]

流程:

  1. 提取文章结构(引言、正文部分、结论)
  2. 确定关键概念及其关系
  3. 在空间上对相关部分进行分组
  4. 添加带标签的边进行连接
  5. 应用自由形式布局,并清晰划分区域

参考文档

  • 画布规范:references/canvas-spec.md - 完整的 JSON Canvas 格式规范
  • 布局算法:references/layout-algorithms.md - 两种布局类型的详细定位算法

在以下情况下加载这些参考资料:

  • 需要了解边缘情况的规范细节
  • 实施复杂的布局计算
  • 排查验证错误

打造高质量画布的提示

  1. 保持文本简洁:每个节点都应便于快速浏览(最好少于 2 行)
  2. 采用层次结构:按重要性和关联性分组
  3. 平衡画布布局:分散节点,避免聚集
  4. 策略性使用颜色:用颜色表达含义,而不只是装饰
  5. 建立有意义的连接:仅添加有助于阐明关系的边
  6. 在 Obsidian 中测试:确认输出能够正确打开

需要避免的常见问题

  • 节点重叠(务必检查间距)
  • 引号转义不一致(会导致 JSON 解析失败)
  • 缺少分组标签(会导致侧边栏导航问题)
  • 节点中的文本过多(长内容请使用文件节点)
  • ID 重复(每个 ID 都必须唯一)
  • 孤立节点(除非有意保留为孤岛)

评论

支持 Markdown