TiddlyWiki: Publish

 11th January 2022 at 2:08pm

发布到线上 wiki.zhiheng.io 站点。

我自制了一个发布脚本 tw_bundler.py 用来发布。这个文件放在个人网盘的 Journey/Toolbox/TiddlyWiki 中,没有公开,它的运行过程会显示出它做了什么。

总体思路是:生成一个新的 TiddlyWiki Node.js 站点文件夹,构建成单页 HTML,再发布到 GitHub Pages

其中需要处理下面描述的问题。

私密性

我的 wiki 中即有可公开的信息,又有私密的内容。我的做法是将不公开的 tiddler 加上 tag。带 的 tiddler 及其自己的子 tiddler 都不会被发布出去。

发布脚本会遍历所有 tiddler,不复制 的 tiddler 及其子 tiddler,并且不复制这些 tiddler 中使用的图片。

减少生成的单页 HTML 大小

为了减少生成的单页 HTML 的大小,使得加载变快,做了这些优化:

这样后再使用 tiddlywiki --build 生成单页 HTML。Build target 在 tiddlywiki.info 中定义的。

生成的单页 HTML 在 6MB 左右,gzip 之后在 2M 左右。GitHub pages 会做 gzip。这样优化后使用 TW 的 lazy loading 意义不大,也使得不需要有 server,直接静态文件部署即可。

同步至 COS

这里的工具带有我的 COS 参数,因此没有公开。

我写了两个同步工具:

  • sync_to_cos.sh 脚本,使用 coscmd 来同步整个目录
  • filesaver,可以将一个文件的文件名 slugify 并上传 COS

发布到 GitHub Pages

手动发布至 wiki 仓库