diff --git a/about_fonts.py b/about_fonts.py index d1e5bb41..c1d8d1ab 100644 --- a/about_fonts.py +++ b/about_fonts.py @@ -5,6 +5,13 @@ 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(): font_files = sorted(p for p in (Path(__file__).parent / "fonts").iterdir() if p.suffix == ".ttf") max_name_len = max(len(p.name) for p in font_files) @@ -19,7 +26,9 @@ def main(): font_type.append("COLR") if "meta" in font and "Emji" in font["meta"].data: font_type.append("EmojiCompat") - font_type = ",".join(font_type) + font_type.append(f"fontRevision:{font['head'].fontRevision:.3f}") + font_type.append(name(font, NAME_ID_VERSION)) + font_type = ", ".join(font_type) print(f"{font_file.name:{max_name_len + 1}} {font_type}") diff --git a/fix_colr_font_revision.py b/fix_colr_font_revision.py new file mode 100644 index 00000000..76b65b72 --- /dev/null +++ b/fix_colr_font_revision.py @@ -0,0 +1,36 @@ +"""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() diff --git a/fonts/Noto-COLRv1-emojicompat.ttf b/fonts/Noto-COLRv1-emojicompat.ttf index c67132df..c93afb11 100644 Binary files a/fonts/Noto-COLRv1-emojicompat.ttf and b/fonts/Noto-COLRv1-emojicompat.ttf differ diff --git a/fonts/Noto-COLRv1-noflags.ttf b/fonts/Noto-COLRv1-noflags.ttf index 3487ad88..daa7629e 100644 Binary files a/fonts/Noto-COLRv1-noflags.ttf and b/fonts/Noto-COLRv1-noflags.ttf differ diff --git a/fonts/Noto-COLRv1.ttf b/fonts/Noto-COLRv1.ttf index 59968a60..37d4655a 100644 Binary files a/fonts/Noto-COLRv1.ttf and b/fonts/Noto-COLRv1.ttf differ