フォントファイルをサブセット化する方法
ウェブにアップロードするフォントファイルをできるだけ小さくするためのサブセット化の方法です。 コマンドラインから実行する方法についてまとめました。
用意するもの
NodeJS と Python を使いました。 (NodeJS から Python のライブラリを使っているみたいなので、 Python だけでもできそうです。)
- NodeJS (v12.6.0)
- Python (3.6.8)
サブセット化対象の文字をチェック
サブセット化するべき文字の文字コード(16進数)を調べます。
Python (3.6) でやる場合
hex(ord('0')) # => '0x30'
hex(ord('9')) # => '0x39'
Ruby (2.5.1) でやる場合
'0'.ord.to_s(16) # => "30"
'9'.ord.to_s(16) # => "39"
ツールをインストールする。
Python のツール
$ pip install fonttools brotli
NodeJS のツール
$ npm install -g glyphhanger
サブセット化
$ glyphhanger --whitelist="U+30-39" --subset something.ttf --formats=woff2
--whitelist
でサブセット化対象の文字を指定します。 U+XX
という表記で指定します。
ここでは woff2 のフォーマットにしています。
結果として something-subset.woff2
が出力されます。
--formats
には カンマ区切りで複数フォーマットを指定できます。(例: --formats=woff,woff2
)