我不用 org-roam, 做的是层次化笔记,一个文件的大小是几百 kB, 并且相关内容都在同一个文件, 目前除了这个问题, 我没感觉有别的痛点。
我的问题是,有没有办法可视化一个 org-mode 各 entries 之间的链接关系, 比如 A 中有 B 的链接,那么图上就出现一个 A 到 B 的边。 可能链接了其它文件的节点,但我不在乎,图上的节点只需要是当前 buffer 中的节点。然后点击节点能跳转到相应 entry (但这个没那么重要,哪怕是一个静态的图对我也很有用了)。
我用的是 ID 链接:
[[id:4f860e56-7b04-400f-97e4-89128f2733e6][a link]]
如果 A 出现了 B 的链接,也应当画出 B 的所有祖先节点,但用另一种线条,Bpp-->Bp-->B
这样。目的是解决这个问题,A 引用的是 B 的一个子节点 B1, 但仍希望体现出 A 与 B 的关系。
本身以及子节点没有被引用的节点就不出现在图中了 (动辄几千个节点,大部分节点都不会被引用,不想图显得太乱)。
我比较满意的效果是 obsidian local graph 那样的。
其实是先有 org-roam-ui 然后有 logseq 的 graph,再然后是 obsidian 的 graph,最强大的目前依旧是org-roam-ui。
wsug
2024 年12 月 2 日 15:50
3
现成的方案应该没有,自行实现一个可以用graphviz dot
来画,我一直想好好学习一下这个画图工具,减少对ps的依赖
想问一下 org-roam-ui 支持一个buffer 内的链接么?而不是所有文件。因为我习惯就是相关联的节点放一个文件方便搜索。
zebra
2024 年12 月 3 日 00:54
5
如果在org roam中使用单个org文件, 采用树形笔记, 如果B引用了A, 那么当光标在A的时候, 在显示反向链接的buffer里B的标题会显示为 B(Bpp > Bp > B), 也就是把反向链接的祖先节点都显示出来.
题主要搜索的是正向链接的祖先节点, 或许可以参考一下org roam的实现.
1 个赞
有个问题,org-roam 是只能可视化一个节点的 backlink 情况么?是不是不能显示整个 buffer 内节点的关系?
zebra
2024 年12 月 3 日 00:59
7
我不清楚, 但是光标移动到哪个分节点, 它就会显示该分节点的backlink. 因此直接写一个elisp遍历所有节点, 把 backlink 的结果全放到同一个buffer就好了…
这个 package 之前试过,不知道是什么问题,Segmentation fault, github 有这个 issue ,作者好像无意受理的样子。