这篇文章将简要介绍 TiddlyWiki 的特点,并且分享一些常用的参考链接、资源、插件和常见问题的解决方案,以方便有相近需求的小伙伴们。
TiddlyWiki ,按官方说法是一个「非线性个人 Web 笔记本」。相比其他笔记和 Wiki 系统,其最大的特点之一是程序本体和数据全部都在一个单 html 文件内,与此同时仍然有着非常强大的功能和插件系统。在我看来,管理以文字、代码和数学公式为主的个人知识库, TiddlyWiki 可谓是最好的选择之一。
可以在我的知识库站点「Dimpurr's Knowledge Base #1」:http://note.dimpurr.com/ 体验一下 TiddlyWiki 的使用和效果。
注意,任意访客都可以体验到 TiddlyWiki 的全部功能,包括编辑和设置。不用担心,你可以随意折腾,因为你无法将更改保存到我的服务器上,只能下载到本地。
<img src="https://pic1.zhimg.com/50/v2-fd24b5f42df9bb84cb8d6baf4e3c3f68_hd.jpg" data-caption="" data-rawwidth="2880" data-rawheight="1800" class="origin_image zh-lightbox-thumb" width="2880" data-original="https://pic1.zhimg.com/v2-fd24b5f42df9bb84cb8d6baf4e3c3f68_r.jpg">TiddlyWiki 效果预览
我想找到一个能方便快捷的打打笔记和维护个人知识库 Wiki 的方式已经很久了。
笔记软件,例如 EverNote 、 WizNote 、 OneNote 的确十分不错,但是也会带来客户端是否跨平台、启动速度是否好看甚至默认文字排版是否美观的问题;而且,常规的笔记软件也达不到 Wiki 级别方便的 Tag 标签系统。当然, Wiki 系统有经典的 MediaWiki 系统,还有许许多多的静态 Wiki 系统、 Wiki 知识库类客户端。然而, MediaWiki 庞大、复杂和丑陋; Wiki 客户端程序有好有坏,有设计简陋也有强大美观,但是最大的限制还是往往不跨平台;一些可以用 Github Pages 部署的,基于 Markdown 的 Wiki 系统尽管几乎能在功能上满足我的需求,但是每一次撰写新条目和部署的复杂度还是令人难以接受。
你可能已经看出了我口味相当的刁钻和需求相当的诡异 …… 高中时因为没有时间折腾,我搭建了一个 Ghost 博客来存放简单的读书笔记,然而随着某次 VPS 上的 SQLite 被我搞跪了之后,天国的 WIKI#0 除了遗留下来数据库里的几篇文章之外,就这样成为了历史。高中毕业的暑假来临,我决定动手寻找一款我需要的 Wiki 系统。于是,我找到了 TiddlyWiki 。
进入 http://tiddlywiki.com 官网,阅读下面的 GettingStarted 条目。这里根据你的浏览器版本会切换的对应的教程,不过总的来说,你只需要点击 Download Empty 按钮就可以下载好一个全新的 TiddlyWiki 的 html 文件了。或者,你可以按照官方说明通过 Node.js 从 npm 安装。
你已经可以开始本地体验和使用了。
注意,你可能需要去设置页面手动安装并启用中文语言包。
当然,我觉得大部分人应该都有上传到服务器上,以便发送地址和在线共享的需求。一般我们会需要把默认的 tiddlywiki.html 重命名成 index.html ,这样访问就很方便了。
不过如果你直接上传 html 文件到服务器,你会发现,每次保存都会重新向本地下载一个编辑后的 html ,然后你需要不厌其烦的用 FTP 再进行上传和替换 …… 其实,只需要简单的配置 PHP 或者 Node.js 保存服务,就可以解决这个问题。
额外的: http://tiddlyspot.com 提供了一个似乎是免费的在线托管 TiddlyWiki 的服务,还提供了专门用于 GTD 的一些模板; TiddlyDesktop 是一个 TiddlyWiki 专用的浏览器,或者说桌面客户端。
PHP 保存非常容易配置。官方的教程在这里:http://tiddlywiki.com/#Saving%20on%20a%20PHP%20Server
因为 TiddlyWiki 并没有用户登陆界面,这个设置页面就相当于登陆页面。密码是按浏览器保存的,所以如果你想在当前浏览器退出登录,到设置页面清除密码设置就好。如果你换了一个浏览器打开 Wiki ,你将需要进入设置重新填写一次密码(相当于登陆),才能使用在线保存。
我收集的 TiddlyWiki 相关资源,都会第一时间整理到我的知识库: http://note.dimpurr.com/#TiddlyWiki%20使用
比较重要的包括:
需要注意的是, TiddlyWiki 最新的版本 5 有重大的变化,导致针对老版本设计的插件全部失效无法安装。你可能会在网上搜索到很多老版本的插件源,以及告诉你使用新建条件、粘贴插件代码内容的方式安装,都已经无法再使用了。所以,记得确认你找到的插件支持 TW5 。
目前,正确的插件安装方式除了在设置页面的官方插件源在线安装,对于第三方插件源来说,一般是你拖动第三方插件源提供的链接、图标或者按钮(不一定有效),或者其设置页面的插件名称(一定有效),拖动到你的 Wiki 页面上,完成导入安装。
我这里安利下我用到的插件,更多的可以在官方插件、主题市场和上面的插件源里自己发掘。
至于主题也有不少,不过我对默认的主题很满意 (你可能会发现 TiddlyWiki 的默认样式巧合的和我的 Clearision 博客主题灰色风格的设计十分相似) ,外加懒得折腾,所以就没有更换。
当然,尽管内容数据很难占据多少空间,安装过多不必要的插件却可能很快使 html 源文件尺寸增大,这点需要注意。
<img src="https://pic2.zhimg.com/50/v2-379768afde62fd3c46c612f163775a8b_hd.jpg" data-caption="" data-rawwidth="2880" data-rawheight="1800" class="origin_image zh-lightbox-thumb" width="2880" data-original="https://pic2.zhimg.com/v2-379768afde62fd3c46c612f163775a8b_r.jpg">使用 MathJax 插件在 TiddlyWiki 显示数学公式
TiddlyWiki 表格排版
请务必花点时间阅读编辑器标记语法参考 http://tiddlywiki.com/#WikiText 的内容,你会发现十分值得。这里强调几点我觉得特别有用的内容。
插入图片的正确姿势是 [img[http://img1.cheny.org/dptool/img/170921112724_v2-0d6d1cde06a90b753193b510e5b9a5a4_r.jpg]] 。文本中的 URL 会被自动识别为链接,如果你想要给一段自定义文本设置超链接,试试 [ext[个人成长/学习/考试/品格/自控/时间管理 - Dimpurr 的知乎收藏|https://www.zhihu.com/collection/104053246]] (ext 大部分情况下可以省略)。
相比 Markdown 的用缩进排版, TiddlyWiki 的无序列表 * 和有序列表 # ,以及缩进子列表不用 Tab 而是用两次列表符号比如 ** 或者 *# 刚开始可能显得有点让人迷惑。习惯就好。
用 TiddlyWiki 排版表格真的非常的爽!你可以自由的设置表头,表尾,表名,每个单元格对齐方式,跨格,而且语法非常简单方便,输入流畅。请阅读官方文档 http://tiddlywiki.com/#Tables%20in%20WikiText 。
前面展示过自动生成条件列表,并且按 Tag 过滤的「魔法」。参考:http://tiddlywiki.com/#Transclusion%20in%20WikiText ,记得阅读底部的 See also 详细说明!
如果你愿意折腾,你可以尝试学习 Macro 宏和 Variables 变量的用法。
TiddlyWiki 有时会把符合 PascalCase / UpperCamelCase 的词自动识别为条目链接。你只需要在前面加入一个波浪线 ~ 转义,比如 ~TiddlyWiki ,就会恢复为纯文本。
安装了 Highlight.js 插件后,你可以这样指定代码块使用的高亮语法:
```bash
➜ ~ pwd
/Users/dimpurr
```
在 Highlight.js 插件设置页面你可以找到支持的语法列表。注意所有 shell 命令的标识符是 bash ,而不是 sh 或者其他的什么。
TiddlyWiki 默认的搜索框存在字符数限制,要求搜索关键词大于三个字符。对于英语环境来说这很合理,但是对于中文来说,二字词的搜索是很常见的,因此很不方便。修改这个设置只需要:
TiddlyWiki 默认自动会把符合 CamelCase 的文本替换为条目链接,称为 WikiLinks 或者 WikiWords 。一般来说你可以用 ~WikiText 来转义禁止链接,但是对于长篇文章这样做实在辛苦。网上流传的基本是直接禁用 WikiLink 功能的方法,但是这样之前 ~ 反转移过的文字又会显示出 ~ 符号。
一个既能让之前的 ~ 不显示,同时也不会有自动链接的方法是:
原文于:使用 TiddlyWiki 打造轻便个人 Wiki 知识库 - 钉子の次元