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