前言
不想看我废话可以直接跳转下部分
昨天回来,我发现网站字体突然寄掉了,这时我才想起来博客用的是别人提供的CDN文件字体,于是我去查看了一番,发现还真是寄掉了(后头推测应该是改了位置)。
于是我就找到了该文件字体的源文件,并把它下载下来供我网站内部直接使用。
但是,整个字体的大小有18MB。一开始,我将它放到了目录里面然后通过css文件直接调用,但是发现光这个字体文件就占了整个博客的80%,上传时间变长,这并不符合我的期望。接着,我开了个Source仓库,将字体上传,借用Jsdelivr来引用字体文件,但是由于本身的下载速度也不是很快,我在实测过程中发现至少半分钟才能下载完(也可能是网络问题)。
我就去求助,想看看群友是否有什么好的提议。
我:有没有什么减少字体文件体积的方法
A:转woff2
B:只用用到的字体
我开始忽略了B告诉我的,关注在A身上了
A:woff2
然后字体分包
然后pjax避免重复加载
参考 中文网字计划
后来找到了中文网字计划
不过我在投入字体文件后只是输出了resule.css
这个关键文件,切割后的文件并没有输出,试了许多次的。
然后回到原本,将ttf转为了woff2,体积略有减小,但是还有10MB。后来B跟我说:
B:你用到了哪些
就只有哪些不就好了
我:🤔
我就去找了个字体文件编辑工具,但是工作量嘛。。。(有300多页),不过后来他就给我了个工具——Font spider
开始
本地使用
1.安装依赖
1 | #npm |
2.再新建一个文件夹(无要求)
文件夹内应该有如此文件
1 | (root) |
html中支持直接内嵌css,因此实际上无需新建css
3.html中输入以下内容
1 |
|
4.再键入
1 | font-spider {文件名}.html |
就能够输出一个新ttf文件包含 你
好
两字
而.font-spider
内部是原ttf文件
我个人是找了2500字+一些符号,平常够用了。
Github Action 自动构建
事实上你完全不需要自己手动渲染,你只需要提交到github即可的,但是仓库内文件需要有package-lock.json
,不过由于用不到,实际上你可以在里面胡乱输入,比如我的:
1 | { |
随后你需要新建位于.github/workflows下的{name}.yml
文件,内部输入
1 | # This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node |
此action会在font
目录的index.html
更改后才会构建,便于调控。