Ariver
2026-08-25 9185ba4f6c43524fc393be97b7770bf9334a481d
02DS/Ob/X-本机用法备忘/01全局自动化索引与整理逻辑/00index.canvas生成原理说明.md
@@ -19,7 +19,7 @@
2. **建树 `build()`**:递归遍历 `00index`,同层文件夹在前、`.md` 文件在后;跳过 `SKIP_DIRS`(如 `X.Attachment`、`.obsidian`)和 **`CANVAS_SKIP_DIRS={"0inbox"}`**(实时聚合草稿目录,不进脑图)。
3. **布局**:自底向上算子树高度、每层取最大宽度决定列间距,整体向右展开。
4. **放置 `place()`**:根节点 → 文件夹节点(📁)→ 文件节点。文件节点用**文字节点 + wikilink**(`[[路径|文件名]]`)而非 `file` 节点,避免渲染满屏「笔记属性」预览;点击可直接打开对应笔记。节点 id 由路径经 md5 确定性生成。
5. **颜色策略**:生成器**不再自动上任何颜色**(旧逻辑用 `CANVAS_COLORS` 给每个分支染红/绿/蓝,会覆盖你手动设的色,已停用)。改为「读取旧画布里已有的 `color`,按节点 id 匹配后保留」——所以你手动上的色在每次重画后都还在;新出现的节点默认无色,由你上色。
5. **颜色策略**:生成器**不再自动上任何颜色**(旧逻辑用 `CANVAS_COLORS` 给每个分支染红/绿/蓝,会覆盖你手动设的色,已停用)。改为「读取旧画布里已有的 `color`,按节点 id 匹配后保留」——所以你手动上的色在每次重画后都还在;新出现的节点默认无色,由你上色。(注:旧版遗留的默认色 `1` 现被视作「无色」,重画时不再继承——历史画布上被自动涂成 1 的节点会自然变回无色;你手动选的其它颜色照常保留。)
6. **写盘门控**:整张画布序列化为 JSON 后与磁盘现有内容比对,完全相同就**不写盘**,避免无谓改动触发 Obsidian 重载。
## 渲染(怎么变成脑图)