再见Gridea,你好Hexo!
新的工具,新的开始!
开端
最近忙课程,买了台二手笔电,全面转战Windows,发现Windows版本的iCloud巨难用。不只是同步慢,因为只做了32位应用,效率极低,后台经常出现莫名其妙的高占用,设置选项极其简陋,设置看不到同步的状态。一些正常的文档还比较好同步,但我放了blog的源代码,小文件几千个直接把应用搞奔溃了!Gridea也不争气,写了内容也发不出去,逼得我走上拆迁道路。
期望
用Gridea+iCloud是为了跨设备同步写作,没想到win下的体验非常糟糕。新的blog工具我希望能做到以下几点:
- 跨设备写作:起码在PC和mac都能用
- 同步方便:Gridea本身不具备,但我希望有,而且最好是git管理
- 容易从Gridea迁移:虽然文章不多,但评论、标签、图片的迁移很头疼
- 自动部署:最好是一条命令或者一个按钮就能自动生成并上传到网站仓库
- 功能兼容:辛辛苦苦写的访客统计项目不能浪费呀,互动内容虽然少但对我很宝贵,一定要能沿用gitalk的数据
- 自由:拥抱开源
最后找到了Hexo,对比了vuepress,发现没什么精力去改底层了,只希望缝缝补补速速上线。主题选择了fluid,功能上挑不出问题,搞迁移也有路子。
迁移
不难,甚至说很简单。文章拖进_post里,图片转移到source目录下,评论改一下issues的tags,修改一下页脚,加上友链信息,一下午搞定。
跨设备与自动化部署
Hexo写blog会有两份代码。一份是Hexo项目源代码,全部的变动都在这代码改。另一份是静态blog源代码,由前者生成,需要部署到服务器让人们访问。跨设备需要同步的是前一份代码,自动化部署需要同步的是后一份代码。在之前的写作流中,iCloud做的是前者的工作,Gridea做的是后者的工作。
新的方案是都交给git管理,把两个代码提交到同一个仓库的不同分支上,使用Github Actions自动从前一份代码生成后一份代码并完成部署。我把前者取为hexo分支,后者则是main分支。
具体做法是在hexo分支中建一个workflows,监听该分支的提交操作,每次提交都会调用Github Actions,调用hexo命令生成静态文件,然后提交到main分支上。
最后
现在在任意一台电脑上,我只需要拉取仓库,添加文章,测试,提交,就能完成写作和发布。非常方便!