14 Say Something

博客框架迁移至 Hugo

从十多年前第一次开始折腾博客时,用的就是在中文博客圈极为流行的 Hexo 框架,那时候甚至没有听说过 Hugo,其实两个框架几乎是同时发布的,只不过 Hexo 在中文世界里的影响力似乎更大一些。

后来反复关闭又重开过两三次,都是继续用的 Hexo,也逐渐知道还有 Hugo 存在,但是并没有切换过去的理由。

至于主题,开始用的是什么主题已经忘记了,总之后来出于可维护性的考虑用上了最流行的 Next 主题,因为用的人多,社区的更新维护也比较活跃,而其它大部分主题的上次更新日期都停留在许多年前了。其次当然是视觉上也挺好看,不然也不会有那么多人选择。

最近更新变得频繁起来之后,感觉 Hexo + Next 的搭配始终无法优化到一个令自己满意的写作和查看体验。

第一点是 Next 主题默认在首页上展示全文,我不是很喜欢这种方式,但也不喜欢通过配置文件实现自动抓取前多少个字作为预览的方式,而是希望能把第一段作为预览。很早之前查到的方法是在预览段后面加一行简短的 HTML 语句来折叠,这种方式在更新频率极低的以前不存在什么问题,哪怕忘了加,本地预览的时候发现了再加上即可。而日更的时候每天都要处理这个问题,就会很困扰。

加之后来我喜欢为每一篇文章加一张题图,那就只能把图片作为预览放在首页上,每张图片的尺寸不一,放在首页上会很难看。要裁剪成同样的大小的话还要做个模板每次进行一些操作。尺寸的问题还算可以解决的小麻烦,但风格不同就很难处理了。于是很快首页就因为这些题图变得愈发难看。

第二点是随着文章数量的增多,Next 主题的首页展示方式显得太重了,除非去归档页面,否则很难快速滑动到以前的文章。当我知道 ʕ•ᴥ•ʔ Bear blog 的存在时,一下子就被其这种极为简洁的展示方式所吸引。但是由于我更喜欢自部署而非 Bear 这种平台式的博客站点,所以也没有切换过去。

综合以上两点原因,我需要一个新的主题。

我首先试图把 Next 调整成类似 Bear 的样子,很快就发现即使有 AI 工具的帮助我也很难在短时间内完成这个事情,而我并不想把过多的时间花在折腾工具上,尤其是考虑到我已经花了很多时间在这上面了。

然后就开始去寻找类似 Bear 的样式的主题,倒是也找到一个效果上接近的 Oranges 主题,甚至感觉在简洁的基础上还更加好看,外加作者去年还更新过,就切换过去了。不过这个主题也是有一些小小的设置需要调整,比如对时间戳的展示似乎有点儿问题,会在每一次构建之后把所有文章的时间戳更新到最新一次的时间。可能是我自己在哪里搞错了,尝试调整了一下也没找到问题的根源。

在寻找合适的 Hexo 主题时,我就已经发现有个 hugo-bearblog,以及在其基础上修改的 hugo-bearneo,但是考虑到尽量少折腾工具的原则,觉得换个主题显然比连博客框架都换掉工作量要小,所以还是先尝试了换主题的方案。

而 Oranges 主题的问题我搞不定之后,开始研究了一下换到 Hugo 的事情,发现也并不麻烦,甚至可以说非常简单。于是就直接新建一个 Github 仓库先测试,成功了再换绑域名即可,也不存在把原来的 Hexo 站点搞坏了的情况,其实现在我还保留着那个站点只是换了个域名,不过迁移到 Hugo 之后那边没有再更新了。

没有详细对比两个类 bear 主题的差异,不过后一个是中文开发者写的,可能会有一些本地化适配(我并没有仔细研究),所以选择了后一个。

部署过程比我预料的简单得多,新建仓库之后拿之前的文章源文件测试了一下就成功了。

虽然最终过程中也还是踩到了很多坑,这也是为何我已经切换过来好多天了才开始写这个事情。不过都是一些小问题,在 AI 的帮助下也都解决了,甚至觉得踩这些坑是好事儿,可以帮助我更深入了解这个框架和主题的一些运作原理。目前已经逐步调整到一个可用的状态,还有一些无足轻重的需要优化的地方,就看啥时候有心情了。

切换过来之后,除了解决了之前我遇到的问题之外,最大的收获是构建速度真的快,简直是毫秒级的。可以写的时候开着本地预览,做了什么变更只要保存一下就能实时看到,而不用像之前那样重新构建一次。

对于自部署博客工具的折腾,基本上可以说到此为止了,不会再主动在这上面花什么时间了。

#Blog #折腾