虽然用 org-mode 一年多了, 但我没试过 org-roam. 但是我一直感觉到用 org-mode 来写项目笔记有点不足.
我认为笔记中对一个函数的描述就是: 它干了什么, 它的实现想法, 它在什么位置. 前两者就记在 org 的一个 node 下, 没有问题. 困难之处在于: 仅用 org-mode 难以描述函数在调用层次中的位置, 它被谁调用, 被如何调用(也就是参数信息).
我想问 org-roam 能不能帮助我描述函数的调用关系? 我觉得用双链来描述函数调用再合适不过了, 这样尽管只引用一次, 这样我们就知道一个函数被哪些函数调用, 也知道它调用了谁, 而且最好有图形化显示, 因为仅有文本只能看到它调用的和被它调用的, 却看不到它在整个调用层次中的位置.
比如 A, B 调用了 C, C 调用了 D. 我希望调用图长这样(这是用 d2lang 画出来的).
为了初步做到这一点, 我想问, org-roam 能只处理一个文件么? 这个 org 文件(就是我对一个项目的笔记)中不同的标题就是不同的 node. org-roam 能只可视化这个文件么? 它的可视化做得怎么样呢? 比如能点击图上的一个节点就跳转到 org-mode 中对应的笔记么? 会不会如果函数很多, 很多节点都很小, 我看不清, 我能不能 focus 到某个节点上?
如果能做到这些, 那我只需要在 A, B 节点下引用 C, C 节点下引用 D, 就自动能生成上面这样的图.
如果可以, 我还有个问题, 我希望图上不仅节点有笔记, 最好两个节点之间的连线也有笔记, 连线在我的设想中是调用实例, 比如 C(arg1,arg2,arg3)
, org-roam 能让我在连线上也给出笔记么? 再比如如果连线能是虚线就好了, 我可以用实线描述方法调用, 用虚线描述数据修改.
如果 org-roam 做不到, 你们觉得比较接近我想法的工具是什么?
我考虑过 d2lang, 它可以方便地在链接和节点上写字, 但是它只是一个图, 缺乏交互性, 而且每次添加新的信息, 就要重新生成图片, 而且做笔记也不合适.