把 Tiddlywiki 整合到 Hexo 中一起部署
最近在找一款 wiki 用来记录一些系统化的知识和笔记,发现了 TiddlyWiki 这个东西。TiddlyWiki 是一个仅由单个 HTML 文件组成的非网络应用的 Wiki 程序,不依赖数据库存储数据,非常有特色,能装插件,玩法也比较多。
后来想到既然最后发布到互联网都是静态文件,那就放到 Hexo 一起部署好了,不需要再搞一个服务来放 TiddlyWiki 的单 HTML 文件了。
我们可以将 TiddlyWiki 的单 HTML 文件放到 Hexo 的 public/wiki 文件夹中,在网站放个 /wiki 入口,随着 Hexo 的提交部署就可以访问了。但随着 wiki 越写越多,生成的单 HTML 文件越来越大,push 也慢,我们不用这种方式。其实我们只关心写东西,其他麻烦的事情全都交给 GitHub Action 或其他自动化部署工具来做就行了。下面是整合的步骤。
整合
先安装 TiddlyWiki:
1 | npm install -g tiddlywiki |
在 Hexo 根目录下初始化一个 TiddlyWiki:
1 | tiddlywiki tiddlywiki --init server |
我们写的 wiki 的源文件就放在 tiddlywiki/tiddlers 文件夹中,类似 Hexo 的 source/_posts 文件夹。
修改 GitHub Action 脚本
1 | name: CI |
npm install tiddlywiki -g
把 tiddlywiki 也装上hexo g
执行生成静态文件到 public 文件夹中;tiddlywiki tiddlywiki --build index
输出 index.html 文件到 tiddlywiki/output 文件夹;- 在 public 创建 tiddlywiki 文件夹,再把 index.html 移过来就完事了。
还有另外一种方法可以先在 source 文件夹下创建 wiki 目录,然后修改 GitHub Action 脚本,先生成 index.html 文件,然后移动到 source/tiddlywiki 目录下,然后再 hexo g
编译也行,大概改成这样,自行测试:
1 | - name: Hexo deploy |
不过要设置下 Hexo 不要把 index.html 也编译了:
1 | # _config.yml skip_render 配置,编译渲染忽略 v 下的所有文件 |
效果: