Fonts ===== Create a system font table in `fonts.html`. Requires: pip install matplotlib :: from pathlib import Path from html import escape from matplotlib import font_manager def get_system_font_names(): fonts = font_manager.findSystemFonts(fontpaths=None, fontext="ttf") fonts += font_manager.findSystemFonts(fontpaths=None, fontext="otf") names = set() for font_path in fonts: try: prop = font_manager.FontProperties(fname=font_path) name = prop.get_name() if name: names.add(name) except Exception: # Some font files may be unreadable or unsupported pass return sorted(names, key=str.casefold) def main(): font_names = get_system_font_names() html_parts = [ """ System Fonts """ ) Path("fonts.html").write_text("".join(html_parts), encoding="utf-8") print("---------------") print(f"total: {len(font_names)}") if __name__ == "__main__": main()