Hugo 使用初体验

从昨天开始有了这个想法,到目前为止,磕磕绊绊的算是把博客迁移到了 Hugo。说是迁移还真让我有点汗颜,至少目前旧的评论都没有迁移过来,仍需尝试努力。不过就基础功能来看,可能已经满足使用了。

过去我尝试过几次 Hugo 没有成功,这次成功了,借助了不少新的工具。之前的困境有很大一部分来源于评论,总是配置不好。也是因为我不想使用默认支持的 disqus 的原因,因为数据放在第三方服务器上,从目前来看已经不是很安全了。而要在本地部署评论系统,这一部分给我带来不少的麻烦。过去我尝试过 Remark42、Artalk 这一类的,总是有两方面的问题。一是后台安装需要配置服务器,过去我的所有服务都放在不同的子目录下面,统一使用 Nginx 来管理。当加入了 SSL 的配置后,配置就变得更为复杂,可以说是超出我的理解水平了。第二个问题是在插入组件方面,会有无法载入的问题。

这次因为之前使用 Docker 来改造我的服务器,所有的应用都运行在 Docker 上面,而且使用了 Nginx Proxy Manager 来管理子域名和 Nginx 返代,让添加子域名、服务变的非常容易,且不会互相干扰。第二个配置的问题就是我这次凭运气弄好的。这次依旧是无法载入评论框的问题,昨天晚上一直弄到凌晨都没有成功。到了最后我要放弃的前夕,偶然间进入了 Firefox 的开发者工具,看到 Remark42 的网址没有正确载入。一开始以为是 uBlock Origin 给过滤了,后来发现配置中部署 Remark42 的网址最后多了一个 /。每了这条斜杠,竟然就正常了。这实在是颠覆三观。当然或许与我对 JS 不熟悉有关系,不过竟然不能兼容网址中的 // 是我从来没有想到过的。

尝试了可以正常添加评论之后,我就感觉最难的问题已经解决了。剩下的就是小改小革,应该都不成问题了,可以慢慢的迁移过来。今天白天因为导入 WordPress 之前的评论不成功,还想尝试 Twikoo、Artalk 等其他评论系统。不过最后都放弃了。毕竟我对网页前端开发也不是很了解,先把一个搞明白了再说吧。好在 Docker 添加和删除实例都比较方便,节省了我很多的时间。下午,我把测试用的域名 hugo.liuf.net 给换到了 blog.liuf.net,算是正式切换,虽然之前的评论还是没有着落。不过好在有 NPM,我想再切回 WordPress 也不难。

现在虽说简陋,不过我也算尝试着用 Hugo 写一两篇文章吧。在书写方面其实与 WordPress 差别不大,我现在 MacBook Pro 用的少,日常也几乎不从 Ulysses 或 MarsEdit 里写博客了,也倒是不再需要 XML-RPC 发布功能了。对我来说,或许最大的理由是 Markdown 的原生支援,让我可以放心我的网站不会在某一天突然 失去功能支持。

我的第一篇 Hugo 博客文章

之前尝试过多次 Hugo,最终都是放弃。今天又看到了椒盐豆豉的博客,感觉她的博客文章结构都比较复杂,用 Markdown 来写或许是唯一让作者思路清晰的方式。加上使用 WordPress 的一些问题,感觉又一次想尝试 Hugo 了。

WordPress 的问题在于,它的发展方向至今依旧是古腾堡,而不是 Markdown,否则以 Markdown 的小体量,WordPress 给它加上原生支持太容易了,Movable Type 十多年前就已经原生支持 Markdown 了。吊诡的是,WordPress 的插件清单里,对 Markdown 支持的好的没几个。其实以现今的运算水平,动态解析 Markdown 不会造成性能损耗,但可以找到的很多 WordPress 的 Markdown 插件,都选择了发布时转换为 HTML 格式保存,这样在将来修改的时候会造成大麻烦。我幸运的在早期使用了合适的插件,但后来那个插件不兼容改版后的 WordPress,我险而又险找到了另一个。如果它再不成,我还能不能找到第三个,还是个未知数。

我其实比较倾向的是 Typecho,它原生支持 Markdown,但我试了几次让它跑在 Docker 环境里,一直没有成功。今天尝试一下 Hugo,看看是否足够幸运吧。过去我的博客放在域名的子目录里,Hugo 对这种方式的支持并不好,我遇到了很多困难,最终放弃。现在,我的博客放在了子域名下面,Hugo 对这种方式的支持应该不错,因此我感觉还是挺有希望的。这件事对 Remark42 同样适用。