新版博客的技术方案(hugo + github pages + github actions + cloudflare)
我的上一个博客,使用的是 hexo + Github Pages 的方案。过去很长一段时间,我都没在 Web 博客上更新自己的文章了,偶尔写一些东西,会发在公众号上。这次将 Web 博客恢复更新起来,打算采用一些新的技术栈,具体来说是 Hugo + Github Pages + Github Actions + Cloudflare.
为什么不再使用 hexo?除了想要尝鲜的想法外,其实我是有点不太喜欢hexo,也许跟它是nodejs写的有关系。一方面是编译时间有点长,还有就是那个node_modules文件夹实在是让我有点难受。实际上,我的博客文件夹在 iCloud 上备份失败了,我猜测可能跟我上传了node_modules有关系。当然,我应该压缩一下的。
hugo是golang写的,我过去写golang比较多,相对喜欢二进制发布的方式,再加上也许可以用这个项目练习golang,故选择hugo。
在选择hugo前,我最早的想法是,这次干脆就不用静态生成框架了,自己纯手撸一个markdown转前端页面的程序出来,但稍微冷静下来就发现这想法不太靠谱。平时工作的时候我是经常提醒同事尽量别造轮子的人,在自己的博客上,我倒是第一直觉就是想造轮子。
至于主题,我选择了一个最朴素的主体,甚至都看不出来有css样式,这正合我意,先来一个毛坯房,然后再慢慢装修。之前的hexo博客,使用的是NexT主题,虽然看着挺漂亮,但一方面是修改起来感觉有点费劲,二是同质化很严重,很多人的博客都是这样子。还是希望自己的网络小家有更多自己的设计。
Github Pages还是老样子,主要是图个免费和稳定。考虑过使用Netlify的服务,但这次先图个省事。
这次用上了Github Actions,已经有开箱即用的流水线配置了,不需要我改一个字符,非常方便。
使用Cloudflare是因为我有个用了快10年的个人域名,并且是出于访问速度的考虑,虽然他们家的CDN在国内的速度我也说不好,但总比没有好,而且还能免费用他们家的服务,我个人还是非常敬佩这家公司的免费服务的。我把我的 wangyufeng.org 域名迁移过去,设置好解析就能用了。
接下来需要做的是实现图床的功能,总不能完全没有图片。另外,我希望能给自己研究一套方案,能非常舒服地在本地编辑器里写文章(比如Ulysses?),粘贴图片并自动上传到图床(而不是在vscode里写文章,这很难受),并且能相对方便地将文章同步到微信公众号上。让发布的成本尽可能小,我想,这也是对写作的激励。
但是,如果在专业编辑器里写文章,文章如何自动转为hugo的md文件?图片链接如何处理?能否一键粘贴到公众号?这些都还需要探索。