#!/usr/bin/env python import os import json from fontTools import subset, ttLib BASE_PATH = os.path.dirname(__file__) CLASSES = json.load(open(f"{BASE_PATH}/src/classes.json")) CLASSES = [c[3:] for c in CLASSES] class OPTIONS: flavor = "woff2" with_zopfli = True harfbuzz_repacker = True canonical_order = False print("loading font") font = ttLib.TTFont( f"{BASE_PATH}/src/bootstrap-icons.woff2", flavor="woff2", lazy=False, recalcBBoxes=False, ) print("subsetting used glyphs") subsetter = subset.Subsetter() subsetter.populate(glyphs=CLASSES) subsetter.subset(font) print("saving minimal fonts") subset.save_font( font, f"{os.environ['ROOT']}/src/static/icons/bsi.min.woff2", options=OPTIONS )