在你的思源笔记中使用 TiddlyWiki!!以及在思源中如何用块实现与 TiddlyWiki 类似的卡片思想

做了什么

因为一直念着 TiddlyWiki 作为速记软件,所以花了两天时间做了一个在思源中使用 TiddlyWiki 的小插件。

image.png

TiddlyWiki 是什么?

TiddlyWiki 是一个开源的,用于捕捉、组织和共享复杂信息的独特非线性笔记本

用它来记录你的待办事项清单 ,规划你的文章或小说 ,或者筹备你的婚礼。记录你脑海中闪过的每一个想法,或者搭建一个灵活响应的网站。

  • 将其数据和代码存储在单个 HTML 文件中,无需安装,无需外部依赖,只需一个 Web 浏览器
  • TiddlyWiki 可让您选择保存数据的位置,确保在未来几十年内您仍然可以使用今天所做的笔记
  • TiddlyWiki 具有无限可定制性和可扩展性,并带有许多可添加新功能的插件
  • TiddlyWiki 是开发人员集体的成果,也是广大用户社区的一部分

换句话说,TiddlyWiki 是一个有二十年历史的开源笔记软件,在某些方面可以算是 flomo、memos、blinko 等速记软件的轻量开源替代品,仅需一个 HTML 即可享受 TiddlyWiki 的全部功能。

我个人认为 TiddlyWiki 尽管有些丑,但在功能上比 Flomo 等软件更加强大和完善。顺带提一句,深入了解后能发现到 anytype 那套 type、object 的东西在 TiddlyWiki 上已经有雏形了(交互上不能替代,但功能上可以,且更加完善)


TiddlyWiki 有单文件服务器两种版本。

  • 单文件版本:知识库中的内容全部储存于单个 .html 文件中
  • 服务器版本:使用 node.js,每一篇笔记储存为一个 .tiddler

该插件采用单文件版本,因此下面的介绍不会涉及服务器版本。


为什么会做思源的 TW 插件?

其实原因蛮简单的,我选择 TiddlyWiki 作为我的速记方案,我当前使用 Quine2、Tiddloid、Tidgi 等社区客户端,但是没有解决一个问题:

在安卓、iOS 和 windows 之间没法轻松同步与管理。我也不想走 onedrive 等网盘。

于是我想到了思源,仔细思考了下,思源简直是完美的选择。

  1. 我的主力是思源笔记。
  2. 思源的同步能走 S3 且端到端加密,也没有单文件的最大体积限制。
  3. 思源支持自定义属性,以后整 TiddlyWiki 和思源双向同步的时候,会为 TiddlyWiki 的条目储存带来极大的便利(这还是饼)。
  4. 完整的 Web API 加持,后续如果开发 TiddlyWiki 的插件(这也还是饼),可以轻松地将内容在 TiddlyWiki 和思源之间转换

目前实现了哪些功能?

目前实现了:思源作为 TiddlyWiki 客户端

  1. 导入 TiddlyWiki 为 TiddlyWiki 笔记或 TiddlyWiki 模板
  2. 在思源中创建、渲染、编辑 TiddlyWiki
  3. 对手机端的优化

还未实现的功能:TiddlyWiki 条目和思源块的同步

我个人会用 TiddlyWiki 记录一些小卡片,这些卡片不一定需要整理到我的思源知识库中,而且 TiddlyWiki 不支持块,思源的自定义属性名不支持中文,所以这些方面还需要考虑,一时半会儿应该不会去实现这个功能。


我不需要速记,要体验下 TiddlyWiki 吗?

emmmm 我其实蛮推荐各位玩一玩的,因为 TiddlyWiki 有一个现成的可视化的非线性笔记的交互方案,也非常适合作为实践卡片笔记的入门方案,了解一下 TiddlyWiki,然后在思源中抽象出来。

同时,对 TiddlyWiki 了解的加深可以让你在思源中大大降低对文档树结构的依赖:将文档树仅用作最基本的分类。

常见的组织方案之间的差异:

思源 TiddlyWiki
第一步 确立文档树结构 创建卡片
第二步 创建笔记 整理卡片结构

PS:TiddlyWiki 支持直接创建子卡片(类似于 moc 吧)

另外,你可以通过 TiddlyWiki 来了解思源笔记的块的概念,大大提高使用思源笔记时的灵活性:

常见的思源笔记使用方案:

思源 TiddlyWiki
单一主题的知识库 工作空间 + 文档树 .html 单文件
卡片(原子化) .sy 文档 .tiddler
数据库条目 由文档构建 通过 Field 动态查询
知识库结构 文档树 手动(moc、toc)或由 Field 动态构建

但是体验了 TiddlyWiki 后,和思源进行对照,我们可以发现原来可以这样做

思源 TiddlyWiki
单一主题的知识库 .sy .html 单文件
卡片(原子化) 将超级快、列表块、引述块等容器块和叶子块视为最小单位 .tiddler
数据库 由最小单位构建 通过 Field 动态查询
知识库结构 将单个.sy 中的所有顶层块视为平级存放的卡片,
通过 toc、moc、数据库手动构建
手动(moc、toc)或由 Field 动态构建

PS:思源的块比较灵活,可以嵌套和转换,所以这里的最小单位由你自行决定。但为了方便理解,我就这么写了哈。

目前我个人认为在思源中实现 TiddlyWiki 这种自下而上方案最大的阻碍是:

  1. 概念稍微有一点抽象

  2. 思源的容器块和叶子块都有多个块 ID,且块结构变更时,属性和块引用不会自动变更到新块。

    1. 因此需要在概念上有意识地自行设定最小单位,比如我将一个超级块视为一张卡片,那么我的块引用、数据表格、属性都只存在于卡片对应的块上,卡片内部的块只负责起布局和渲染不同类型的块的职责。

还有什么想法吗

思源笔记会是一款能使用几十年的开源笔记软件吗?如果你认为是,在有精力或有能力的情况下,可以多多贡献一些内容,以帮助思源笔记正向发展。

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    28446 引用 • 119783 回帖
1 操作
ACai 在 2025-08-11 11:46:29 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...