爱意满满的作品展示区。
vigack

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

  •  1
     
  •   vigack · Feb 11, 2021 · 2289 views
    This topic created in 1934 days ago, the information mentioned may be changed or developed.

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

    大致思路是:

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

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

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

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

    就我的情况而言,用户缓存更多的情况下是自动 expire——因为 github page 默认的缓存周期只有几分钟。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2643 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 12:23 · PVG 20:23 · LAX 05:23 · JFK 08:23
    ♥ Do have faith in what you're doing.