自从我构建 OneBlog 以来,其 SSG 工具 Hugo 的版本升级共有两次,分别是 v0.111.3 版本的初始化以及升级到 v0.123.7 版本,时间间隔为一年,升级过程顺利无感,甚至完全不需要对博客主题模板进行修改。
昨天,也就是距离上一次我对 OneBlog SSG 工具 Hugo 版本升级仅过了 10 个月的时间,我在想要升级 Hugo 到最新版的 v0.140.2 时,却迎来了当头一棒,Hugo 开始撒了欢给我报各种 WARN 和 Deprecate ERROR,大致的内容和下面的文章类似:
在经过了还不算特别痛苦的修复之后,我的 OneBlog 成功跑了起来,但是我发现了一个严重的问题,OneBlog 的搜索功能和所有文章的 Summary 内容表现出了和原先旧版本 Hugo 渲染的十分大的差异,特别是搜索功能几乎完全排版炸掉。在经过了对多个 Hugo release 版本的测试之后,我发现了核心问题所在。
在 Hugo v0.134.0 及以后版本中,Hugo 的 Summary 引擎彻底进行了重写,其 Behavior 与旧版本完全不一样了。而我所使用的 Blog 主题模板大量依赖于旧特性的 Summary 功能,在切换到新版本 Hugo 后,我的 Blog 渲染生成的 index.xml
、index.json
、首页文章 Summary、文章页 <head>
标签内 description 全部受到了严重影响。由于 index.xml
、index.json
在新版本 Hugo 输出后会带有 HTML 样式转义(而我只需要纯文本),并且 <head>
标签内 description 难以简单控制(说白了,就是我认为我并不值得花费过多的时间和精力去学习 Hugo 语法,去把博客主题模板升级适配到最新 Hugo 版本,尤其是在 Hugo 的 Breaking Change 越来越快的现状之下),故 OneBlog 将会锁定 Hugo 版本在 v0.134.0 之前的最新一个 release 版本上(v0.133.1),毕竟 Hugo 的那些 Breaking Change 我也用不上……
最后小小吐槽一下 Hugo 吧……同样是一年时间,去年相比前年,Hugo 的 Breaking Change 简直数量惊人,尤其是其 Release 说明写的非常随意,也不附有详细的版本升级指南,哪个 API deprecate 了只有运行的时候才告诉你(让我想起了 TensorFlow v1)。虽然客观讲,这是 Hugo 仍然具备开发者生命力的表现,但在 Vite SSG 大流行的趋势下,我实在是不想把过多时间投入在一个不占流行趋势的 SSG 工具上……
版权声明:本文遵循 CC BY-SA 4.0 版权协议,转载请附上原文出处链接和本声明。
Copyright statement: This article follows the CC BY-SA 4.0 copyright agreement. For reprinting, please attach the original source link and this statement.