前言※
从去年开始我就一直尝试各种笔记软件,从一开始使用的以有道云笔记,印象笔记为代表的传统笔记软件;到开始产生数据安全意识,转而使用以 joplin、obsidian、logseq 为代表的本地笔记软件。
此期间尝试了无数笔记软件,陪伴我最久的是 obsidian。这是一款十分优秀的本地 markdown 笔记软件,而且扩展性极佳,使用插件可以实现各种各样的功能。
当然问题也出在这里,使用 obsidian 后我的关注力似乎更多的在于折腾软件这件事上而不是进行知识沉淀。我总是思考如何使用插件和标签等构建更好的工作流,我总是疲于折腾,实际沉淀下的知识却甚少。
而且同步问题确实有些糟心,我之前写了一个小工具用于解决使用 icloud 同步时产生碎片文件的问题,可是 icloud 总是会带来各种各样意料之外的诡异问题。后来尝试使用 git 进行版本管理,但是经常性的处理冲突文件也逐渐让我疲惫。多终端的频繁同步也让 git 的版本管理失去了意义。
最让我欣喜的是 logseq,logseq 的一大特点就是取消了传统的目录结构,转而从每日笔记作为切入点,构建笔记之间的双链关系。这样的好处是可以减少记笔记时的心理负担,我们不需要思考从何开始动笔,需要做的只是在每日笔记中记下今日的工作或者灵感。
这与我心中的工作流十分接近。但缺少目录结构的整理归纳,无数的笔记碎片会使整个笔记系统变得一团糟,虽然使用 logseq 的 query 能解决部分问题,但总是没有目录结构来的清晰明了。
接下来该提到 trilium 了,很久以前就听闻这是一个可以构建无限节点的知识库笔记,但是我一直没有尝试。这次把 trilium 作为主力笔记软件使用一个月后,我认为 trilium 足以成为我理想中的笔记软件。
简单介绍※
这是一款在 github 上开源的笔记软件,附上链接:zadam/trilium。不过我使用的是国人翻译后重新编译的版本,附上链接:Nriver/trilium-translation。
开源、多端同步、功能丰富的编辑器(CKEditor 5)、双向链接、无限层级……这些特点足以让人一试。
我的工作流※
如上所述,trilium 的特点有很多,但只是一条一条叙述的话未免枯燥乏味,不如直接看wiki 文档来的清楚明白。
所以我以自己的工作流为切入点介绍一下我所使用到的笔记特点。
从日记出发※
上文说过 logseq 的以日记为笔记的切入点的思路非常适合我,所以我每天首先会做的就是开启一篇日记,写下今日的代办计划。同 obsidian 一样,trilium 也支持从模板创建,使用~template:<日记模板>
标签即可用模板中的内容自动创建日记。
这一天当中所有的笔记我都会附在今日日记的下方,这体现出 trilium 的一个特点,它没有文件夹的概念,取而代之的是节点,每一个节点都可以编辑和新增子节点,就像一颗可以无限成长的树,向外蔓延出无数枝干。
就像这样:
这是我今日看书时在脑海中闪现的想法,此时无需考虑如何分类如何关联,直接在今日日记下进行记录即可。在记录这种类型的笔记时,我参考了《卡片笔记法》的概念,每一个节点中只记录一个想法,如果是读书笔记的话,则贴上原文片段。
浏览网页的时候看到有意思的文章时则用网页剪裁插件,一键剪裁到今日日记下方。
整理归纳※
一天下来,今日日记的下方肯定产生了许多子节点,如果放任不管的话,我们的记录便失去了意义。所以一天结束时我会对今日记录的内容做分类。
说到这里不得不提到 trilium 的克隆功能,接触过双向链接的小伙伴应该知道,一篇笔记可以同时被不同文章引用,而 trilium 的克隆功能与之类似但又不仅于此。
从上一张截图可以看到,我的笔记右侧有一个*
号,这代表这篇笔记被克隆了,即它成为了其他节点的子节点。这几个节点都是我在阅读《自卑与超越》一书时的读书笔记,所以我在整理归纳的时候就可以将这些笔记克隆到我的读书笔记下方。
这样子我们就获得了一个拥有丰富上下文信息的知识碎片,在【笔记路径】选项中可以看到该笔记有多少处克隆的路径。
忘了说,上文中的读书笔记是【知识仓库】的其中一个子节点,【知识仓库】是我用于整理归档的节点。可在此节点下进行分类,比如读书、健康、软件、操作系统……然后在子节点继续进行分类,比如在【操作系统】后建立 windows、linux、mac os 等节点……只要你想,就可以无限分类下去。一个知识点经常会有不同的分类,仅仅使用链接不能够很好的进行分类归纳,如果创建多个相同的笔记又显得杂乱臃肿,克隆这一功能的存在便很好的解决上述的问题。
知识输出※
按照以上两个流程进行一段时间后,会发现自己的知识仓库里拥有了很多没有整理的知识碎片,我们不需要有太多压力,只需要进行浏览,你就会惊讶的发现,啊原来这里已经有这么多的知识点了。
比如我今天写下的这篇博文,就是我在浏览【知识仓库】时发现,差不多好像可以形成一篇文章了,于是将之前的知识碎片重新进行整理,就形成了你们看见的这篇文章。
同样,借用《卡片笔记法》的概念,此时写下的文章被称为【永久笔记】,在笔记库的根目录下建立【永久笔记】节点用于存放这类笔记。当然由于克隆的存在,你依然可以把他克隆到任意你觉得合适的地方。
小结※
以上便是我的日常工作流,我可以毫无压力的记下每日产生的灵感,并且由于日记的存在我可以很方便的回顾写下灵感时的上下文信息。随着时间的积累,你的知识仓库会变得越来越充实。当然,这种工作流使用大部分双链笔记都可以做到,但让我如此顺心的却是独一个。
值得一提的特点※
trilium 丰富的功能也是我最终决定使用他的理由。
基于数据库的存储※
曾经我一度认为 md 格式才是最好的笔记存储方式,md 格式的好处有以下几点:
- 文档掌握在自己手里
- 通用的格式,方便笔记迁移和博客发布
- 方便进行版本管理
但后来我发现这并不是适合我的。一是因为我有多终端同步需求,git 的版本管理毫无意义,而且容易产生冲突文件,二是由于 obsidian 与 logseq 等软件对 markdown 格式的魔改,反而使文件迁移变得更加困难!
而数据库本身就是为了解决纯文本存储带来的种种麻烦而出现的技术,trilium 的数据库存储有以下几个优点:
- 备份和还原方便
- 数据掌握在自己手里
- 更加方便的版本管理
- 可依托与数据库实现各种功能(trilium 开放数据库接口,可以自己写 js 代码实现你想要的功能)
可部署服务端,实现多端同步※
trilium 可以部署在云服务器上,可通过 web 端和客户端进行访问,同步速度取决于你的服务器,不过由于它是增量同步,所以同步速度非常快。
自己部署服务端之后的同步体验,在目前所有开源或半开源的笔记系统中比较下来都是十分优秀的,上一次让我觉得这么舒心的同步方式还是私有部署的为知笔记。
功能丰富的编辑器※
trilium 的编辑器是基于开源编辑器:CKEditor 5,这是一款好用的富文本编辑器。虽然是富文本编辑器但是 trilium 能够把富文本笔记导出为 markdown 格式,而且转换出的格式十分规范。
除了富文本编辑功能之外,还支持许多格式的笔记,你甚至可以直接在笔记中调试和运行 js 代码。
当然,markdown 格式也是支持的,由于博文中需要添加 Front-matter 信息,所以平时记录时我会使用富文本编辑,但是写永久笔记的时候我会直接写 markdown。trilium 实现了基本的 markdown 颜色渲染,对于我而言也够用了,如果有需求的话 trilium 也支持用外部程序打开进行编辑,比如 typaro、marktext 等软件。
除最基本的文本笔记之外,还支持画布笔记,渲染笔记,各种流程图、时序图等,功能不可谓不强大。
属性※
trilium 的属性类似于其他笔记软件的标签,而且除用户自定义标签之外,trilium 还提供了一些自带的标签功能,比如,使用#archived
标签可以将笔记归档。
此前使用 obsidian 时,如何处理归档文件令我十分头疼,存放在同一个库里时,总是出现在我的搜索结果和引用链接中,所以我只能建立一个新的库专门用于存放归档笔记,但这又令笔记的同步和管理出现问题。而在 trilium 中,归档的文件不会出现在搜索和引用中。
由于 trilium 的属性是可以设置为继承的,将其设置为继承后其下所有节点都会拥有继承的属性。所以我直接在根目录建立一个【归档】节点,打上可继承的 archived 标签,此后所有暂时不需要的笔记我全部存放进这个文件夹中。
值得一提的是,如果在【归档】节点下放置某篇笔记的克隆,那么这篇笔记的其他所有克隆位置都会被归档。所以我更推荐的做法是在【归档】节点下建立要归档的笔记的克隆而不是直接将笔记拖进去,这样的好处是不会破坏知识仓库的结构。
此外,用户也可以自定义标签,定义的标签可以通过搜索查找、也可以通过 sql 语句查找还可以通过 trilium 的 api 查找,如果你有余力的话可以自己写 js 代码,实现各种功能,比如示例库中的体重记录就是通过获取「体重」标签实现的。
笔记加密※
设置为保护笔记之后,这篇笔记包括笔记名都会被加密,只有输入密码解密后才可访问。
其实这只是一个最基础的功能,大部分传统的笔记软件都可以进行笔记加密,但习惯了开源和自己掌控笔记数据之后,这一功能在 obsidian 之类的软件之中也显得尤为珍贵。
分享笔记※
这是部署服务端后可使用的功能,点击分享按钮,即可生成一条公网链接分享你的笔记。
方便的笔记导入和导出※
trilium 的笔记导入十分方便,只需要将笔记打包成 zip,即可一键导入,不过我遇到一个问题,不管是在 linux 还是 windows 下,导入 zip 的时候中文标题都会乱码,最后是通过 bandizip 在打包时选择使用 AES256 加密算法后才解决问题。
导出也十分方便,有多种导出选择,如下图所示:
极强的拓展性※
trilium 本身的功能就已足够强大,但是其本质上是一个强大的「浏览器」,而且作者开放了笔记 api,所以你完全可以将其打造成一个足够适合你的笔记软件。
结语※
目前对于我来说,trilium 是一款足够优秀的笔记软件,最重要的是它能让我沉下心来做好知识沉淀。
如果你还没有找到最适合的你的笔记软件,不妨试一试 trilium。