网站小更新
我最近又准备小翻新一下博客了。虽然东西没写多少,但是主题更新的快呀哈哈哈哈哈毕竟差生文具多
VPS 迁移到 Hostinger
之前我在用 DigitalOcean,因为很久之前 GitHub 整了个 GitHub Student Developer Pack,给了一些 DigitalOcean 的 credit,之后就懒得切换了。但是 DigitalOcean 给的硬盘有点小,装了系统就不剩多少空间了,于是我最近决定换一个 VPS。
看了一圈之后决定换到 Hostinger,也没啥,主要是觉得便宜 233333 基本上同价位的硬盘比 DigitalOcean 高一倍,而且还有新人优惠,更加便宜了。
切换 VPS 比我想象中的要简单一些,主要就是 DNS 那边换一下 IP 就行。看了一下,老 VPS 上没有啥值得留念的文件,干脆就断舍离了。新的系统需要重新配置,但是正好重新学习一个。
Nginx 换成 Caddy
我之前一直懒得搞 https,靠着 Cloudflare 来假装自己有 https。后来看到了 Caddy 这个 project,自带 https,顿时就来了兴趣。
nginx 对我就两个用处:
- reverse proxy;
- serve 静态网页,例如这个网站就是一个静态网站。
这两个 feature 都挺 standard 的,太 standard 了导致根本没啥可说的,比 sample 还 sample。另外 Caddy 还支持 zstd,我就加上去了。
roosephu.net { |
中文字体切割
我之前也提到过,我现在在用 LxgwBright 这款字体,是中文霞骛文楷英文 Ysabeau Office 的混合字体。字体质量上除了粗体不太明显之外,我觉得没有缺点。
但是,中文字体部署在网页上都有一个相同的问题:字体文件太大了……光是一个 Regular 型号就有 11MB,一来下载慢,用户需要等一阵才能看到,二来也浪费带宽。很多常用的英文字体没这烦恼,本来字体就好,还可以直接 Google Fonts 就好。霞骛文楷虽然有 Google Fonts,但是只有繁体中文版,而且我需要的还是 LxgwBright……
经过一些学习,我才知道原来有个技术叫做字体切割,大概思路是把一个大字体文件切成很多小文件,每个文件只包含部分字体。这样浏览器可以通过多个并行的请求来获取字体。由于汉语常用字没那么多,所以请求的数量就还好。我随便看了几个,都在 50 个文件以内,文件平均大小不到 50KB,所以相比之前确实有十足长进。
那最后的问题就是怎么切了……我最后找到了一个库 cn-font-split,可以在 nodejs 上跑,也可以通过 WASM 直接在浏览器上跑,点击下鼠标就搞定了。LxgwBright 的每个 ttf 会被切成一堆小文件,还会附赠一个 result.css
,可以直接 @import
:
@import url('/assets/fonts/LXGWBright-MediumItalic/result.css'); |
评论系统切换为 isso
由于这网站就是一个静态网站,没有后端,而且我也不打算切换成 WordPress 这种大框架(再加上 WordPress 最近的一系列 drama 让我更加不想用它),那得找一个自带后端的评论系统。之前在用 Disqus,感觉还挺好的,但是 Disqus 似乎有一些奇怪的行为,虽然这文章的作者似乎和 Disqus 有 conflict of interests,但是我觉得他说的还在理,所以我想切换成一个更加注重 privacy 的评论系统,要是能 self-hosted 那就更好了。
我找了一圈,找到了几个选项:Artalk,Chirpy, Coral, isso,Remark42。为什么最后决定用 isso 呢?因为这几个中,hexo-theme-next
只支持 isso……
那就开干。先写个配置文件 isso.cfg
,可以对着 Server Configuration 写。给个示范如下:
[general] |
然后再装 isso。为啥把装放在后面?因为 isso 是用 Python 写的,这个我熟啊,零帧起手拿起 uv
就能跑:
# install uv |
最后再在 Caddy 里配置一下 reverse proxy 即可:
isso.roosephu.net { |