local graph 无法识别带标题的双链
local graph 链接到 outline的时候 由于库上有多个outline 导致错误识别, 然后图里面hover 显示一个tip 显示完整路径比较好
三个 bug 的修法:
1. [[xxx#heading]] 无法识别
getFirstLinkpathDest 接受的是文件路径,不含 heading。但 link.link 对于 [[xxx#heading]] 是 "xxx#heading",直接传进去找不到文件。
修法:传之前先 link.link.split('#')[0] 剥掉 heading 部分。
2. 点击节点跳转到错误文件
原来用 openLinkText(file.basename, sourcePath) — basename 不唯一(多个 outline.md 在不同目录),Obsidian 会按自己的规则选一个,不一定是图里那个。
修法:nodeId 本身就是完整路径,直接 getLeaf('tab').openFile(file) 精确打开,不经过路径解析。
3. hover 显示完整路径 tooltip
原来节点只显示 label(basename),hover 没有任何提示。
修法:在 renderer 里为每个节点注册 mouseenter/mousemove/mouseleave,动态更新一个固定在 document.body 上的 <div> 的位置和内容(node.id 即完整路径),destroy() 时一并清理。
local graph 无法识别带标题的双链
local graph 链接到 outline的时候 由于库上有多个outline 导致错误识别, 然后图里面hover 显示一个tip 显示完整路径比较好
三个 bug 的修法:
1.
[[xxx#heading]]无法识别getFirstLinkpathDest接受的是文件路径,不含 heading。但link.link对于[[xxx#heading]]是"xxx#heading",直接传进去找不到文件。修法:传之前先
link.link.split('#')[0]剥掉 heading 部分。2. 点击节点跳转到错误文件
原来用
openLinkText(file.basename, sourcePath)— basename 不唯一(多个 outline.md 在不同目录),Obsidian 会按自己的规则选一个,不一定是图里那个。修法:
nodeId本身就是完整路径,直接getLeaf('tab').openFile(file)精确打开,不经过路径解析。3. hover 显示完整路径 tooltip
原来节点只显示
label(basename),hover 没有任何提示。修法:在 renderer 里为每个节点注册
mouseenter/mousemove/mouseleave,动态更新一个固定在document.body上的<div>的位置和内容(node.id即完整路径),destroy()时一并清理。