1#!/usr/bin/env python
2import os
3import json
4
5from fontTools import subset, ttLib
6
7BASE_PATH = os.path.dirname(__file__)
8CLASSES = json.load(open(f"{BASE_PATH}/src/classes.json"))
9CLASSES = [c[3:] for c in CLASSES]
10
11class OPTIONS:
12 flavor = "woff2"
13 with_zopfli = True
14 harfbuzz_repacker = True
15 canonical_order = False
16
17
18print("loading font")
19font = ttLib.TTFont(
20 f"{BASE_PATH}/src/simple-icons.woff2",
21 flavor="woff2",
22 lazy=False,
23 recalcBBoxes=False,
24)
25
26print("subsetting used glyphs")
27subsetter = subset.Subsetter()
28subsetter.populate(glyphs=CLASSES)
29subsetter.subset(font)
30
31print("saving minimal fonts")
32subset.save_font(
33 font, f"{os.environ['ROOT']}/src/static/icons/si.min.woff2", options=OPTIONS
34)