说实话我真的很不喜欢 HUGO,不过鉴于两方面原因还是从用了很久的 Grav CMS 换了过来:
- 更新频率并不高的情况下,相比静态页面的不便,更在意它带来的速度提升;
- 我服务器上还运行着一个 Mastodon 实例,博客改成静态页面可以节省资源。
不喜欢 HUGO 当然很大程度上是因为不习惯,但是也并不只是不习惯。
Go 语言的模板系统真是有够弱,举个简单例子,制作模板时经常会用到 block
概念,就是一个一个可以复用的结构块,Go 的模板系统里 block
只能被覆盖,不能在原有基础上扩展。那和直接重新写有什么区别呢?
另外 HUGO 本身的逻辑也拧巴,有些属性是大小写敏感的但有些又不敏感;文章全都乱七八糟的堆在目录里,很难看得清楚文章先后顺序,十分怀念 Grav 那种在目录名称前加上(不影响文章链接地址)数字序号的设置。
理论上 HUGO 可以实现文章的层级结构,但是一旦建立层级,父级文章的种类就从文章变成了列表,不能出现在文章的上一篇 .Prev
和下一篇 .Next
序列中。当然,最后我也找到了办法解决了这个问题,但是着实繁琐。
HUGO 内置的图片处理方法也弱爆了,Gif 不能裁剪也就算了,某些 Png 也不能裁,为了实现一个批量裁剪命令,需要套好几层判断语句……
以及,发布本文的过程中又发现一个问题,如果你没有明确指定文章发布时间的时区,HUGO 默认你是指格林威治时间。这是什么狗屁逻辑?程序本身明明知道使用者所在时区,却认为使用者不使用当地时区?
不过最终,基本上「完美」从 Grav 迁移到了 HUGO,效果就是妳现在看到的这样。
哦哦,分享一个小技巧:之前经常会在 RSS 阅读器里看到别人切换博客程序导致的重复文章,我想出来一个办法,就是更换程序时,先关闭 RSS 输出,等你写了一篇新文章时,打开 RSS 输出但是限制输出条目数为 1。然后每增一篇就修改一次输出条目数,直到正常水平。当然,现在写博客的人本身就少,经常换程序的更少,还在用 RSS 阅读器的也……