跳过正文
  1. Posts/

修复 Hugo 升级造成的错误 2.0

·1035 字·3 分钟
Hugo
Crabcracker
作者
Crabcracker
A little bit about you

博客又又又被 Hugo 升级搞崩了。

这次的问题是不能正确渲染 front matter,原因当然还是 hugo 和主题的版本不适配。照着上回的经验局部手动翻新了主题的 layouts 文件夹后,问题反而更严重了——hugo sever -D 直接罢工了。不得以只好手动替换了整个主题文件夹,然后再想办法把自己的客制化的部分加回来。

删除自带的多语言
#

期间又遇到了 Hugo 自带的多语言切换的老问题,上回是顶栏图标间多了一个空格,这次空格变更了国旗,但中英之间无法来回切换,就照着老配方在 theme/blowfish/layouts/partials/header/basic.html 文件中删掉 line 34 的 {{ partial "translations.html" . }}

自定义字体
#

修改的字体自然也不见了,最后是照着主题作者在 Discussion 里的回复改的。

Easy way to change the font to local file via CSS #66 
https://github.com/nunocoracao/blowfish/discussions/66  

> Hello @stamyx , to replace the font you should do 2 things:  
> place the font in the static folder as you've done, I would also place it within a folder called fonts.  
> create a custom.css file so that you can override the stylesheet, final structure will look like this:
.
├── assets
│   └── css
│       └── custom.css
...
└─── static
    └── fonts
        └─── font.ttf
import the new font using the newly created custom.css and apply it to the elements you wish (example below does it for html):
@font-face {
    font-family: font;
    src: url('/fonts/font.ttf');
}

html {
    font-family: font;
}

我选的是直接上传字体文件,而非从 Google Fonts 或 CDN 那里拉取在线托管的字体。

具体方法是在博客根目录的 static文件夹中新建 fonts 文件夹,将字体文件上传到此处;然后在 assets/css 路径下新建 custom.css 文件,填入上文引用的内容。

我用的是 LXGWWenKaiScreenR,一开始没有写对格式导致没能成功渲染,多试了几次后才算成功了。

@font-face {
  font-family: "LXGW WenKai Screen R, Regular";
  src: url('/fonts/LXGWWenKaiScreenR.ttf');
}

html {
  font-family: "LXGW WenKai Screen R, Regular";
}

修改时间
#

我想把显示的时间格式从 “Jan 2, 2006” 改成 “2006-01-02”,在语言的配置文件中把时间参数修改成

dateFormat = 2006-01-02"

不曾想这和 Gallery 里的模板 html 文件用的参数起了冲突,hugo sever -D 又罢工了。只好灰头土脸地排查报错的两个 html 文件,把 dateform 替换成 dateFormat,总算解决了问题。

(在这之前我曾尝试在配置文件中同时保留 dateformdateFormat,但又出现了奇怪的 bug——每篇博文的发布日都成了23号)

小结
#

这次花了小半天修好了 bug。debug 的过程对前端白痴来说实在太痛苦了。既然选择了花里胡哨的客制化就要付出代价,但真的是太痛了。

因为总是在 Hugo 升级后报错,我有想过通过“扼杀” Hugo 的升级来解决问题,在 gitlab-ci.yml将 hugo 的版本从 latest 替换成了一个指定的旧版本。但是本地的 Hugo 就不好办了,即使不刻意去升级,每次用包管理 upgrade all 的时候肯定会连带把 Hugo 一起升级了,到时候看能不能排除更新 Hugo 或者手动把它降回来吧。

Hugo 真是太难养活了,打算过些天找些轻量的当备胎。

credit
修 bug 的时候也有想过“抄别人的作业”,在修改时间参数的时候有参考小绵尾巴(@cuttontail)的配置文件 https://github.com/miawithcode/blog/blob/main/cuttontail/config/_default/languages.zh-cn.toml