TiddlyWiki(中文社区称呼为太微)是一个非线性笔记软件/个人 Wiki 系统,拥有极其丰富的拓展性和可定制性。TiddlyWiki 是一个自由和开源软件(FOSS),使用 BSD-3-Clause 开源协议。因其开源和可定制性,太微拥有一个古老而活跃的官方社区,国内有太微中文社区。官网是 TiddlyWiki 的一个典型案例。另有 Node.js 版本。
TiddlyWiki 之美
2021年初发现 TiddlyWiki 时,就发现这个软件的第一个美妙之处:
整个软件就是一个小巧的 HTML 文件,这个文件包含了软件的逻辑、样式和用户创建的所有内容【数据存在程序本身】。我以前从未见到过这样的东西,于是瞬间把我吸引。因此学到一个词:Quine(自包含),自己能创建一个新版本的自己。因其完全基于浏览器的特性,只要有任意一个现代浏览器就能打开,然后随意修改它,这意味我写在这个文件里的内容,随时可以打包带走。
第二个美妙的地方是它的语法:WikiText。在用这个语法之前我用的是 Markdown,一个在互联网比较火爆的标记语言,现代笔记软件基本上都支持这个语法。但 WikiText 提高了一个笔记软件的语法的上限,由于太微的设计哲学和 Filter Expression,用户可以用任意方式组织已有的笔记内容(链接、标签、宏)。这比使用 Notion、Obsidian](借助 Dataview 插件) 之类的笔记软件来得更加灵活。
第三个是太微本身的高度可定制性。只要有 HTML
CSS
JS
能力,任何人都能把太微改造成想象中的样子以及实现想象中的功能。04年至今(TiddlyWiki5 为新架构,从2013年起),作者 Jeremy Ruston 持续高强度不间断开发迭代,还有一个活跃的社区,因为良好的生态吸引开发者产出了许多优秀的插件。只要简单搜寻,就能找到符合需求的功能,或者问题的解决方案。
还有一些细节也是吸引我的原因:
- 纯文本,支持本地离线使用,免费开源,这三点是最重要的
- 极简主义,太微的界面不会花里胡哨(当然要是想花里胡哨也可以),最简单的按钮、文字、框框构成了一个清晰好用的用户使用界面,甚至还有一个 Seamless 主题(也就是本站目前在使用的主题),同时能改动几乎任何地方
- 接上条,界面有足够丰富的信息量满足使用,例如默认的 Story River 故事河以及 Open(已打开的条目)界面,同时打开多个条目时,上下滑动即可浏览和修改,这一点比 Obsidian、Notion 之类的【全屏下只有一个笔记,空空荡荡】的状态要好用得多;可以设置到两侧的 Sidebar 侧边栏;侧边栏和条目浏览/编辑页面上的工具栏;强大的 Advanced Search 等等
- 单文件、Node.js 版本轻松相互切换,方便备份管理和灵活应用
- 桌面端和移动端的使用体验几乎是相同的
- Node.js 版本的太微随性发布任意条目的永久链接,带
#
的包含整个太微,去掉#
则只加载单个条目
还有一个强大的插件 Tiddler Commander,强大到我认为应该内置到默认的太微里去。使用这个插件需要注意尽量少使用选择所有的功能,这个功能会刷新所选择的条目的更新时间。
TiddlyWiki 的优缺点
优点:
- 支持仅单文件,完全基于浏览器,跨平台,是自产生(自包含)程序
- FOSS ,中立,安全性高,不依赖任何服务商,数据自由可控
- 基于纯文本格式,便于迁移
- 社区友好,插件丰富
- Macro 的特性支持快速记录特定类型的笔记
- 多种部署和备份方式
- 加密粒度丰富(从单个 tiddler 到整个 TiddlyWiki 加密)
缺点:
- 使用门槛高,学习曲线较陡峭
- 默认保存方式原始,需要一定配置才能正常开始保存
- 文件过大/插件多/数据多后,发布到互联网可能导致打开速度慢
- 移动端使用没有桌面端方便,几乎所有笔记软件的硬伤
我在使用 TiddlyWiki 的几年间养成了如下习惯:
- 形成基本笔记记录原则
- 双链的概念
- 抛弃剪藏所有内容的思维,用自己的语言记录笔记
- 初步有做目录(MOC/TOC)的概念
- 写 Journal / Daily Notes