AI画图神器-Excalidraw和draw.io和PicDoc

AI 画图神器:Excalidraw、draw.io 和 PicDoc

第一章:在 Obsidian 中绘制 Excalidraw

如果只是把 Excalidraw 当成一个在线白板,那它当然很好用;但一旦把它放进 Obsidian,它的定位就变了:它不再只是“画图工具”,而是“笔记系统中的可视化画布”。

这件事的价值在于:图和笔记不再分离。

  • 文字笔记可以直接链接到图
  • 图里的节点可以承载知识点、流程、架构和关系
  • 一张图可以持续迭代,而不是画完就丢
  • AI 可以参与补图、改图、重构图

1.1 为什么 Excalidraw 放在 Obsidian 里会更强

在 Obsidian 里画 Excalidraw,最核心的优势不是“画得更漂亮”,而是“图和知识库天然连在一起”。

典型场景包括:

  • 用一张图梳理一篇文章的结构
  • 用流程图表达一个复杂工作流
  • 用架构图记录项目模块关系
  • 用问题树、决策树整理思考过程
  • 边写笔记边补图,而不是来回切工具

这意味着 Excalidraw 在 Obsidian 里更像一种“可视化思维载体”,而不是单纯的画板。

1.2 在 Obsidian 里如何新建一张 Excalidraw 图

前提是已经安装了 Obsidian 的 Excalidraw 插件。

通常有几种常见方式:

  • 通过命令面板新建 Excalidraw 文件
  • 在左侧文件树中新建 .excalidraw.md
  • 通过模板或快捷命令快速创建图

很多人第一次看到文件后缀会有点困惑,因为它经常不是 .excalidraw,而是:

xxx.excalidraw.md

这是因为 Obsidian Excalidraw 常用的是一种 Markdown 包装格式。它本质上仍然是一个 Markdown 文件,但中间包着 Excalidraw 的图形数据。

1.3 为什么有时能看到 JSON,有时看到的是一大串压缩内容

Obsidian Excalidraw 文件常见有两种保存方式。

第一种是展开形式:

md
## Drawing
```json
{
  "type": "excalidraw",
  "elements": [...]
}
代码

第二种是压缩形式:

```md
## Drawing
```compressed-json
N4KAkARALgngDg...
代码

区别很简单:

- `json`:展开后的图形数据,人能看懂一部分
- `compressed-json`:压缩后的图形数据,人基本看不懂

它们本质上是同一份内容,只是存储方式不同。

为什么会这样?

- 展开 JSON 更适合调试、版本对比、AI 修改
- 压缩格式更节省体积,也更接近插件默认保存习惯

所以你会遇到一种情况:

- 某些旧图打开源码后,只看到 `compressed-json`
- 某些 AI 改过的图,能直接看到完整 JSON

这不是文件坏了,而只是保存格式不同。

### 1.4 这些文件到底写了什么

一个 Excalidraw 文件里真正重要的内容主要有两部分:

#### `## Text Elements`

这一段保存的是图中出现过的文字索引,例如:

- 节点标题
- 判断标签
- 注释说明

它更像是一份“文本目录”。

#### `## Drawing`

这一段才是真正的图形数据,里面会保存:

- 矩形
- 文字
- 菱形判断节点
- 箭头
- 坐标
- 颜色
- 尺寸
- 线条样式

也就是说,一张图里的每个框、每条线、每段文字,本质上都是一条 JSON 元素记录。

### 1.5 这类文件能不能手动改

可以,但分情况。

#### 更推荐:在 Excalidraw 视图中修改

这是最正常的方式:

- 打开 Obsidian
- 切到 Excalidraw 视图
- 直接拖拽、修改文字、调整箭头

这是最安全、最直观的方式。

#### 也可以:直接改源码

如果你用文本编辑器打开 `.excalidraw.md`,也确实能直接改里面的 JSON。

这种方式适合:

- AI 批量改图
- 程序自动生成图
- 做版本 diff
- 排查箭头、节点和布局问题

但它不适合普通手工编辑,因为很容易改坏:

- 引号
- 逗号
- `points`
- 坐标
- 元素 id

所以对于大多数人来说:

- 日常改图,用 Excalidraw 视图
- 想理解文件结构,再去看源码

### 1.6 在 Obsidian 里怎么正确打开它

有时你点开一个 `.excalidraw.md` 文件,看到的是源码而不是图,这通常是因为它当前被当成普通 Markdown 打开了。

正确方式是切到 Excalidraw 视图,例如:

- `Open as Excalidraw`
- `Switch to Excalidraw View`
- 或右上角更多菜单中切换到 Excalidraw 视图

如果打开后看到的是一大坨源码,不代表文件有问题,往往只是打开方式不对。

### 1.7 AI 在这个工作流里能做什么

当 Excalidraw 放进 Obsidian 后,AI 的角色并不是“代替你画图”,而更像“协助你把图补完整”。

比较适合的方式是:

1. 你先手动画一个草图
2. AI 根据现有结构继续补节点、判断、分组、说明
3. 你再手动微调布局和样式

这比让 AI 从零生成一整张最终图更稳。

特别是在复杂图里,AI 更适合做这些事:

- 帮你补结构
- 帮你重构层级
- 帮你统一命名
- 帮你生成初版流程
- 帮你把一堆文字整理成图

但不太适合完全代替你做最后的美化和视觉判断。

### 1.8 一个更实用的协作方式

如果你真的想把 AI 深度接进 Excalidraw 工作流,最实用的方式通常不是“让 AI 直接画最终图”,而是“双层文件”:

- 一层是人类可读的结构源文件
- 一层是 Excalidraw 的视觉产物

比如:

- Mermaid
- YAML
- 简化 DSL
- Markdown 大纲

先用这些方式描述结构,再让 AI 生成 Excalidraw 图,整体会更稳,也更容易维护。

### 1.9 小结

在 Obsidian 中使用 Excalidraw,真正重要的不是“学会画框和箭头”,而是理解三件事:

1. 它是知识库的一部分,不是孤立的白板
2. `.excalidraw.md` 本质上是 Markdown 包装的图形数据文件
3. AI 最适合参与“补图、重构、整理结构”,而不是完全替代人的最终编辑

当你接受这一点之后,Excalidraw 的角色就会从“画图工具”升级成“可视化思考界面”。

---

后面再继续展开:

- draw.io 更适合什么
- PicDoc 的优势是什么
- 三者各自适合的使用场景