V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
vigack
V2EX  ›  分享创造

用 ripgrep+fonttools 动态压缩网站中的字体

  •  1
     
  •   vigack · 2021-02-11 14:54:02 +08:00 · 1497 次点击
    这是一个创建于 1162 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在折腾博客,想要用好看的字体,又不想牺牲体验,于是尝试了一下压缩字体。以仓耳渔阳字体为例,压缩前的 ttf 为 1.6M ,根据使用到的字符取子集后的大小为 297K,进一步压缩为 woff2 格式后大小只有 162.8K ,这个大小基本可以做到无感知加载了。

    大致思路是:

    • ripgrep 查找所有用到的字符:rg -e '[\u4e00-\u9fa5]' -oN --no-filename|sort|uniq|tr -d '\n'
    • 用 fonttools 根据指定的文本进行字体压缩

    为啥不用现成的字蛛呢,因为我花了很久也没跑起来……

    4 条回复    2021-02-12 10:54:22 +08:00
    vigack
        1
    vigack  
    OP
       2021-02-11 14:57:10 +08:00
    cyio
        2
    cyio  
       2021-02-11 15:52:47 +08:00
    效果很好
    learningman
        3
    learningman  
       2021-02-12 10:43:44 +08:00 via Android
    但是有个问题,这个文件不会经常要更新吗?一更新用户的缓存就要作废
    vigack
        4
    vigack  
    OP
       2021-02-12 10:54:22 +08:00
    @learningman

    就博客的应用场景,更新频率不高。
    况且字体不到 200K,即便更新了缓存用户也不会有非常明显的感知,你可以进入我的博客试试强制刷新。

    就我的情况而言,用户缓存更多的情况下是自动 expire——因为 github page 默认的缓存周期只有几分钟。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1442 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 23:55 · PVG 07:55 · LAX 16:55 · JFK 19:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.