林一二2021年12月26日 22:27
我之前尝试过制作简易的桌面版 TiddlyWiki App,但这些方案没法开箱即用,不便于 TiddlyWiki 的广泛采用。所以我打算用 Electron 写一个开箱即用的,能同步数据到 Github 备份的桌面版 TiddlyWiki 应用。
技术选型
Juli 是 Quang Lam 写的,用于 WebCatalog 生成跨平台桌面 App 的 Electron 模板,它使用的 MPL License 允许重新修改分发商用。
重用它,而不是自己从底层开始配 Electron,可以节省大量开发时间。
我觉得我可以创建一个新的 Github Organization,然后 fork Juli,做一些修改让它变成一个 TiddlyWiki 桌面应用。
基本需求
- 初次启动时要求制定文件目录,一个公开一个私有
- 还要求指定两个 Github 仓库,一个公开一个私有,对应到本地文件夹上
- 启动应用时启动 NodeJS 版 TiddlyWiki 服务器,并自动把私有文件夹链接到公开的 TiddlyWiki 文件夹的 tiddlers 文件夹里面
- 让它的 WebView 默认载入 localhost 的 wiki
我在打包它时,就把所有 TiddlyWiki 的依赖项都放进去,而且带上 npm 和 git 相关依赖,方便使用 context bridge 暴露更多 API 给 wiki。
因为定位是本地个人 Wiki 工具+在线发布工具,所以在本地使用时没有协作就不用太考虑安全性,可以暴露一个 API 让它能提交新的 InjectJS,从而能通过 TiddlyWiki 插件来分发 Context Bridge API。
不过它具体的打包步骤是在 WebCatalog 里发生的,需要把相应的打包脚本加到 package json 里。
Undefined widget 'supertag-form'