知识 Lsgv 化,及对 Lsgv 不足的思考
自从去年心血来潮,写了个记录小说的导图应用 Lsgv,并开始尝试对自己一些看过的小说做记录,如《千禧年》三部曲的人物关系图:
后面又尝试了其他做小说导图的方式,如为《人生海海》记录的:
最近开始对技术点开始做整理,顺便也用来看看是否能够胜任对技术导图的描述,于是写了个关于 GraalVM 的:
又画了个其他风格的 Java 代码运行图:
个人感觉效果还是不错的,起码是超出了我原先的预期(本来主要是来记录小说人物关系的,便于自己书写和记录),于是便创建了 Lsgv Illustration 项目作为自己将知识 Lsgv 图例化的仓库。
几番折腾下来,发现了一些缺陷,记录写来,作为之后 Lsgv 2 的改进吧:
- 缺少反向链接,如:dot 的 LR 模式下,想要分成左右树,右树正常逻辑,左树只能通过隐形节点,非约束链接,然后设置节点与非约束节点同级才能形成左树
- 动态功能是内嵌,缺乏扩展能力,如:彩虹色渲染和链接颜色跟随是在主体代码中,不是通过功能插件扩展
- 更好的状态管理,包括全局和本地的状态,如:现在彩虹色渲染的记录是记录在全局的,如果要局部的渲染,就没法做到
- 更快捷简单的表达,如:名字为
my-car
和my-bike
的节点,应该考虑到my
为 prefix 到car
和bike
的直接链接,不然链接要写太多前缀,我的逻辑又是跟着前缀写节点的 - 大图合并,因为 gv 本身对画布有大小限制,而且在画布上的风格为既定的
- 手动固定某些节点或者画布位置,还有让链接可以指向到固定的节点或者画布
- 数据即代码,不止于数据文本格式,可以无缝编写 Scheme 代码进行程序处理,也可以利用 REPL 机制