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/bootstrap-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/bsi.min.woff2", options=OPTIONS 34)