链接索引
链接索引是 Tydora 的后台服务,负责扫描仓库、构建并维护所有笔记之间的链接关系。它是 03-知识管理/01-Wiki链接 自动补全、03-知识管理/03-反向链接 局部图谱、03-知识管理/04-知识图谱、03-知识管理/06-标签 与 05-导航与搜索/01-快速打开 的数据底座。
Abstract
你通常无需直接接触链接索引——它在后台静默工作。本页说明它的机制,便于理解为何链接「总能正确解析」。
索引内容
| 索引类型 | 说明 |
|---|---|
| 出链(outlinks) | 当前笔记链接了哪些笔记 |
| 反链(backlinks) | 哪些笔记链接了当前笔记 |
| 文件名索引 | 文件名 → 路径映射,支撑 [[笔记名]] 解析与补全 |
| 图片名索引 | 图片文件名 → 路径映射,支撑 ![[图片.png]] 嵌入与悬停预览 |
| 标签索引 | 标签 → 文档映射,支撑标签列表、标签图谱与 #标签 筛选 |
工作机制
首次构建
- 打开仓库时扫描整个目录树
- 跳过以
.开头的隐藏文件与目录(如.git、.obsidian) - 解析所有 Markdown 文件中的
[[链接]]、![[嵌入]]、#标签与 Frontmatter 的tags - 一次性构建链接关系表与标签表
联合构建
链接索引与标签索引共享同一次扫描:先尝试从本地缓存恢复,缓存不可用时再扫一次仓库、批量读取文件内容,然后同时喂给链接解析器与标签解析器。这样仓库很大时也只需要读一遍文件。
增量更新
- 保存文件时,只更新该文件的链接与标签
- 文件系统监听(见 04-文件管理/01-仓库)发现新增 / 删除 / 重命名 / 外部修改时,刷新受影响的条目
- 重命名或移动文件时,会顺带重写指向它的 WikiLink,保持链接不失效
持久化
| 项目 | 说明 |
|---|---|
| 链接索引 | localStorage 键 zmd-link-index |
| 索引归属仓库 | localStorage 键 zmd-index-vault,用于判断缓存是否仍然有效 |
| 标签索引 | localStorage 键 zmd-tag-index |
Tip
切换仓库时,如果缓存的索引属于另一个仓库,Tydora 会自动重建,不会串数据。
性能表现
- 批量读取:构建时批量读取文件,避免逐个 IO 造成卡顿
- 后台异步:索引构建不阻塞编辑
- 增量优先:日常编辑只触发小范围更新
- 延迟加载:图谱渲染使用 WebGL,节点数量大时依然流畅
Note
仓库很大时,首次启动的索引构建可能稍耗时,之后都会是轻量的增量更新。构建期间链接补全与图谱可能暂时不完整,稍候即可。
为哪些功能提供数据
- 03-知识管理/01-Wiki链接 自动补全与点击跳转
- 03-知识管理/03-反向链接 局部图谱与链接引用
- 03-知识管理/04-知识图谱 渲染
- 03-知识管理/06-标签 标签列表、标签图谱与筛选
- 05-导航与搜索/01-快速打开 文件搜索
- 04-文件管理/02-文件树 重命名 / 移动后的链接修复
相关文档
- 03-知识管理/01-Wiki链接 — Wiki 链接语法
- 03-知识管理/03-反向链接 — 反向链接
- 03-知识管理/04-知识图谱 — 知识图谱
- 03-知识管理/06-标签 — 标签体系