| """Set COLRv1 fontRevision from CBDT. |
| |
| Used for bugfix, should fix to set properly on build instead. |
| """ |
| |
| from fontTools import ttLib |
| from pathlib import Path |
| import sys |
| |
| |
| NAME_ID_VERSION = 5 |
| |
| |
| def name(font, name_id): |
| return ",".join(n.toUnicode() for n in font["name"].names if n.isUnicode() and n.nameID == name_id) |
| |
| |
| def main(): |
| colr_font_files = sorted(p for p in (Path(__file__).parent / "fonts").iterdir() if p.name.startswith("Noto-COLRv1")) |
| |
| for colr_font_file in colr_font_files: |
| cbdt_font_file = colr_font_file.with_stem(colr_font_file.stem.replace("Noto-COLRv1", "NotoColorEmoji")) |
| |
| colr_font = ttLib.TTFont(colr_font_file) |
| cbdt_font = ttLib.TTFont(cbdt_font_file) |
| |
| assert "CBDT" in cbdt_font |
| assert "COLR" in colr_font |
| |
| colr_font["head"].fontRevision = cbdt_font["head"].fontRevision |
| |
| colr_font.save(colr_font_file) |
| |
| |
| if __name__ == '__main__': |
| main() |