对于笔记软件的超纲小需求
Without further ado
最近我在某个笔记里记了几行「x+1」「y+2」这样的结构化数据,然后想在文首自动统计 x、y 的总数量。这听起来很简单,LLM 直接就能给答案。但不使用 LLM 实现这个效果的笔记软件,其实很少。
其实这个需求逻辑不复杂,但需要自己写代码实现读取文本内容计算数据。算是小众需求。
我用的笔记软件中只有 Obsidian 和 Trilium 可以实现。Obsidian 使用了 Dataview 插件写 js,最后呈现表格。Trilium 则是更麻烦,使用 jsx 读取 markdown 内容,然后创建渲染笔记显示 jsx。
既然使用了 jsx 我也尝试了 mdx 。这个 mdx 写起来很怪,实际体验是支持了 markdown 的 jsx 。功能可以实现但是大动干辄了属于是。而且偏向于组件。
然后我也尝试了 Quarto ,有点慢。而且里面用个 Ts 还得需要 Python 。那我为什么不直接用 R 或者 Python 呢?
然后自己手搓了一个。仿照 rmd 写的,文学编程那套。Deno 做运行时,使用 node vm 执行 markdown 中代码块和行内代码,并且将原文档和内容组装到新 markdown 文档。这一套简单实现写的挺快,毕竟有 rmd 可参考,和 AI 交流了下调整一下就可以用了。
自己写的,没有那么多功能,快多了。非常贴合我的需求。但是他和 Quarto 一样只有电脑能使用了。Obsidian 可以纯本地,Trilium 本身就是运行在服务器上提供个网页,一些方法也能纯本地。但是 Quarto 和我搞的这个,是明确的需要 Deno 运行时环境。MDX 都能以搞成浏览器环境现编译,但是我这个使用了 node vm,想搬到浏览器给移动端使用还得改改。
不得不说 Obsidian 流行不是没有道理的。这种小众的需求都可以满足。作为个人笔记来说,这个需求本来就是超纲的。可以看到,后面的那些工具都偏向于发布出版。无法实时预览。