初然忆

断断续续忙活一天,给博客换了面貌

起因

笔者在将Hugo升级到 0.168.0后,使用原主题 hugo-theme-stack 构建站点时会弹出异常提示:

WARN  deprecated: css.Sass: libsass was deprecated in Hugo v0.153.0 and will be removed in a future release. Use dartsass instead. See https://gohugo.io/functions/css/sass/#dart-sass

询问千问模型后,我才知晓Stack主题使用了LibSass编译器来处理样式,据说从Hugo的0.153.0版本就宣布弃用了。

我本着能不换主题就不换主题的态度,在网上搜寻补丁。

不过,了解到的方法都需要我通过NPM或其他方式在环境中安装Dart Sass,我感觉像是为了一碟醋去包一桌的饺子。

挑选

我知道,肯定会有人去建议我用AI许愿一个适配Hugo的主题。

但我实在是不知道该从哪里开始设计,与其继续迷茫下去,倒不如直接在网上找一个现成的主题。

于是,我发现了这款名为hugo-paper的主题。

没有眼花缭乱的特效,没有刺眼的泛白,它简直是为阅读而生。

改造

痛点只会在使用的时候涌现,我联合ChatGPT、DeepSeek和Gemini对这款主题进行了魔改。

说人话,就是对着AI许愿。

按照它们工作量,大致可以总结为:

选手工作量
ChatGPT60%
DeepSeek20%
Gemini10%

修改后的样式基本存放于根目录下的layouts和assets两个文件夹,尽可能避免在更新主题后样式丢失的问题。

尺寸

加宽了主题的横向尺寸,不然我总觉得左右两侧留白太多,会让读者觉得我是个把电脑屏幕竖起来的人。

目录

在文章增加目录区域,点击可以跳转到对应的标题。

随着屏幕滚动,目录会自动高亮所在区域对应的标题。

宽屏模式下,目录会在右边显示。

窄屏模式下,目录会在文章标题下方显示。

图片

基于我的审美,图片的对齐方式被设置成居中。

同时,我还限制了文章页图片的最大高度,目前数值为500px,这样做的目的是为了避免一张图占满这块屏幕。

点击图片可以调出原生JS灯箱,具备镜像、反转、缩放的功能。

评论

上面三点只用了不到半天的时间解决,而评论区的改造对我来说简直是噩梦一般的存在。

因为这个主题并没有适配Twikoo,需要不断地对AI许愿来将它引入到文章页。

如果直接放入官方提供的前端代码,那么Twikoo前端页面会继承主题的样式,元素之间相互干架。

20261020144412953.webp

如果使用Shadow DOM来隔离样式,从样式上看没有什么问题,但是表情功能会出现异常,例如点击表情后没有消失表情页面,反而是在切换表情类型后会导致表情页面意外消失。

许愿来,许愿去,最后选择了用iframe来隔离样式。

这个方法应该是最能还原Twikoo前端样式的了,但也有诸多问题需要解决。

例如说第一次许愿用这个方法的时候,页面高度会被无限制地撑大。

第二次许愿后,页面不会被撑到太空,但底下也会留白一大片。

解决完上述问题后,又发现了不适配暗色模式的问题,切换到暗色后评论区的文字还是黑色的。

也就是说还要做一个监听主题亮色/暗色的方法,以此来自动切换文字的颜色。

感想

无关紧要的代码交给智脑解决就好了,我要做的也只有记录生活的片刻。