Merge pull request #174 from jpirnay/feat-extendedcharset

feat: Extend font character range
This commit is contained in:
jpirnay
2026-05-06 20:56:16 +02:00
committed by GitHub
78 changed files with 163 additions and 218 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+124 -191
View File
@@ -14,23 +14,23 @@
"files": [ "files": [
{ {
"name": "Alegreya/Alegreya_10.cpfont", "name": "Alegreya/Alegreya_10.cpfont",
"size": 314326 "size": 254633
}, },
{ {
"name": "Alegreya/Alegreya_12.cpfont", "name": "Alegreya/Alegreya_12.cpfont",
"size": 393854 "size": 319082
}, },
{ {
"name": "Alegreya/Alegreya_14.cpfont", "name": "Alegreya/Alegreya_14.cpfont",
"size": 485840 "size": 392855
}, },
{ {
"name": "Alegreya/Alegreya_16.cpfont", "name": "Alegreya/Alegreya_16.cpfont",
"size": 595370 "size": 479125
}, },
{ {
"name": "Alegreya/Alegreya_18.cpfont", "name": "Alegreya/Alegreya_18.cpfont",
"size": 717674 "size": 575909
} }
] ]
}, },
@@ -46,23 +46,23 @@
"files": [ "files": [
{ {
"name": "Arimo/Arimo_10.cpfont", "name": "Arimo/Arimo_10.cpfont",
"size": 348294 "size": 388843
}, },
{ {
"name": "Arimo/Arimo_12.cpfont", "name": "Arimo/Arimo_12.cpfont",
"size": 445610 "size": 502675
}, },
{ {
"name": "Arimo/Arimo_14.cpfont", "name": "Arimo/Arimo_14.cpfont",
"size": 566018 "size": 637946
}, },
{ {
"name": "Arimo/Arimo_16.cpfont", "name": "Arimo/Arimo_16.cpfont",
"size": 690286 "size": 777763
}, },
{ {
"name": "Arimo/Arimo_18.cpfont", "name": "Arimo/Arimo_18.cpfont",
"size": 840448 "size": 951109
} }
] ]
}, },
@@ -110,23 +110,23 @@
"files": [ "files": [
{ {
"name": "Bitter/Bitter_10.cpfont", "name": "Bitter/Bitter_10.cpfont",
"size": 328854 "size": 283762
}, },
{ {
"name": "Bitter/Bitter_12.cpfont", "name": "Bitter/Bitter_12.cpfont",
"size": 404985 "size": 352284
}, },
{ {
"name": "Bitter/Bitter_14.cpfont", "name": "Bitter/Bitter_14.cpfont",
"size": 495408 "size": 430628
}, },
{ {
"name": "Bitter/Bitter_16.cpfont", "name": "Bitter/Bitter_16.cpfont",
"size": 597142 "size": 517782
}, },
{ {
"name": "Bitter/Bitter_18.cpfont", "name": "Bitter/Bitter_18.cpfont",
"size": 715219 "size": 615582
} }
] ]
}, },
@@ -142,23 +142,23 @@
"files": [ "files": [
{ {
"name": "Charis/Charis_10.cpfont", "name": "Charis/Charis_10.cpfont",
"size": 337367 "size": 338639
}, },
{ {
"name": "Charis/Charis_12.cpfont", "name": "Charis/Charis_12.cpfont",
"size": 417485 "size": 419052
}, },
{ {
"name": "Charis/Charis_14.cpfont", "name": "Charis/Charis_14.cpfont",
"size": 532708 "size": 534581
}, },
{ {
"name": "Charis/Charis_16.cpfont", "name": "Charis/Charis_16.cpfont",
"size": 656012 "size": 658207
}, },
{ {
"name": "Charis/Charis_18.cpfont", "name": "Charis/Charis_18.cpfont",
"size": 843707 "size": 846360
} }
] ]
}, },
@@ -174,23 +174,23 @@
"files": [ "files": [
{ {
"name": "Gelasio/Gelasio_10.cpfont", "name": "Gelasio/Gelasio_10.cpfont",
"size": 214500 "size": 227040
}, },
{ {
"name": "Gelasio/Gelasio_12.cpfont", "name": "Gelasio/Gelasio_12.cpfont",
"size": 280544 "size": 298752
}, },
{ {
"name": "Gelasio/Gelasio_14.cpfont", "name": "Gelasio/Gelasio_14.cpfont",
"size": 357582 "size": 382806
}, },
{ {
"name": "Gelasio/Gelasio_16.cpfont", "name": "Gelasio/Gelasio_16.cpfont",
"size": 447480 "size": 479436
}, },
{ {
"name": "Gelasio/Gelasio_18.cpfont", "name": "Gelasio/Gelasio_18.cpfont",
"size": 548094 "size": 589924
} }
] ]
}, },
@@ -206,23 +206,23 @@
"files": [ "files": [
{ {
"name": "GentiumBookPlus/GentiumBookPlus_10.cpfont", "name": "GentiumBookPlus/GentiumBookPlus_10.cpfont",
"size": 398510 "size": 324302
}, },
{ {
"name": "GentiumBookPlus/GentiumBookPlus_12.cpfont", "name": "GentiumBookPlus/GentiumBookPlus_12.cpfont",
"size": 519063 "size": 420404
}, },
{ {
"name": "GentiumBookPlus/GentiumBookPlus_14.cpfont", "name": "GentiumBookPlus/GentiumBookPlus_14.cpfont",
"size": 645720 "size": 519293
}, },
{ {
"name": "GentiumBookPlus/GentiumBookPlus_16.cpfont", "name": "GentiumBookPlus/GentiumBookPlus_16.cpfont",
"size": 800427 "size": 643507
}, },
{ {
"name": "GentiumBookPlus/GentiumBookPlus_18.cpfont", "name": "GentiumBookPlus/GentiumBookPlus_18.cpfont",
"size": 983908 "size": 794387
} }
] ]
}, },
@@ -334,23 +334,23 @@
"files": [ "files": [
{ {
"name": "Inter/Inter_10.cpfont", "name": "Inter/Inter_10.cpfont",
"size": 530150 "size": 466300
}, },
{ {
"name": "Inter/Inter_12.cpfont", "name": "Inter/Inter_12.cpfont",
"size": 659788 "size": 578248
}, },
{ {
"name": "Inter/Inter_14.cpfont", "name": "Inter/Inter_14.cpfont",
"size": 807250 "size": 702886
}, },
{ {
"name": "Inter/Inter_16.cpfont", "name": "Inter/Inter_16.cpfont",
"size": 982216 "size": 851741
}, },
{ {
"name": "Inter/Inter_18.cpfont", "name": "Inter/Inter_18.cpfont",
"size": 1175576 "size": 1015069
} }
] ]
}, },
@@ -398,23 +398,23 @@
"files": [ "files": [
{ {
"name": "Literata/Literata_10.cpfont", "name": "Literata/Literata_10.cpfont",
"size": 497119 "size": 413941
}, },
{ {
"name": "Literata/Literata_12.cpfont", "name": "Literata/Literata_12.cpfont",
"size": 583306 "size": 478367
}, },
{ {
"name": "Literata/Literata_14.cpfont", "name": "Literata/Literata_14.cpfont",
"size": 691897 "size": 558295
}, },
{ {
"name": "Literata/Literata_16.cpfont", "name": "Literata/Literata_16.cpfont",
"size": 816373 "size": 649363
}, },
{ {
"name": "Literata/Literata_18.cpfont", "name": "Literata/Literata_18.cpfont",
"size": 1017583 "size": 798979
} }
] ]
}, },
@@ -430,23 +430,23 @@
"files": [ "files": [
{ {
"name": "Lora/Lora_10.cpfont", "name": "Lora/Lora_10.cpfont",
"size": 244674 "size": 245328
}, },
{ {
"name": "Lora/Lora_12.cpfont", "name": "Lora/Lora_12.cpfont",
"size": 302601 "size": 303403
}, },
{ {
"name": "Lora/Lora_14.cpfont", "name": "Lora/Lora_14.cpfont",
"size": 369710 "size": 370703
}, },
{ {
"name": "Lora/Lora_16.cpfont", "name": "Lora/Lora_16.cpfont",
"size": 453301 "size": 454510
}, },
{ {
"name": "Lora/Lora_18.cpfont", "name": "Lora/Lora_18.cpfont",
"size": 572188 "size": 573700
} }
] ]
}, },
@@ -482,35 +482,6 @@
} }
] ]
}, },
{
"name": "NotoSansArmenian",
"description": "NotoSansArmenian",
"styles": [
"regular"
],
"files": [
{
"name": "NotoSansArmenian/NotoSansArmenian_10.cpfont",
"size": 8524
},
{
"name": "NotoSansArmenian/NotoSansArmenian_12.cpfont",
"size": 10057
},
{
"name": "NotoSansArmenian/NotoSansArmenian_14.cpfont",
"size": 12146
},
{
"name": "NotoSansArmenian/NotoSansArmenian_16.cpfont",
"size": 14418
},
{
"name": "NotoSansArmenian/NotoSansArmenian_18.cpfont",
"size": 16846
}
]
},
{ {
"name": "NotoSansCJK", "name": "NotoSansCJK",
"description": "Sans-serif (Chinese, Japanese, Korean)", "description": "Sans-serif (Chinese, Japanese, Korean)",
@@ -521,35 +492,10 @@
{ {
"name": "NotoSansCJK/NotoSansCJK_10.cpfont", "name": "NotoSansCJK/NotoSansCJK_10.cpfont",
"size": 2567898 "size": 2567898
}
]
},
{
"name": "NotoSansEthiopic",
"description": "NotoSansEthiopic",
"styles": [
"regular"
],
"files": [
{
"name": "NotoSansEthiopic/NotoSansEthiopic_10.cpfont",
"size": 35426
}, },
{ {
"name": "NotoSansEthiopic/NotoSansEthiopic_12.cpfont", "name": "NotoSansCJK/NotoSansCJK_12.cpfont",
"size": 47174 "size": 3611786
},
{
"name": "NotoSansEthiopic/NotoSansEthiopic_14.cpfont",
"size": 60619
},
{
"name": "NotoSansEthiopic/NotoSansEthiopic_16.cpfont",
"size": 76276
},
{
"name": "NotoSansEthiopic/NotoSansEthiopic_18.cpfont",
"size": 94566
} }
] ]
}, },
@@ -565,52 +511,23 @@
"files": [ "files": [
{ {
"name": "NotoSansExtended/NotoSansExtended_10.cpfont", "name": "NotoSansExtended/NotoSansExtended_10.cpfont",
"size": 503189 "size": 457693
}, },
{ {
"name": "NotoSansExtended/NotoSansExtended_12.cpfont", "name": "NotoSansExtended/NotoSansExtended_12.cpfont",
"size": 636573 "size": 577210
}, },
{ {
"name": "NotoSansExtended/NotoSansExtended_14.cpfont", "name": "NotoSansExtended/NotoSansExtended_14.cpfont",
"size": 802460 "size": 726543
}, },
{ {
"name": "NotoSansExtended/NotoSansExtended_16.cpfont", "name": "NotoSansExtended/NotoSansExtended_16.cpfont",
"size": 989069 "size": 893325
}, },
{ {
"name": "NotoSansExtended/NotoSansExtended_18.cpfont", "name": "NotoSansExtended/NotoSansExtended_18.cpfont",
"size": 1198735 "size": 1078120
}
]
},
{
"name": "NotoSansGeorgian",
"description": "NotoSansGeorgian",
"styles": [
"regular"
],
"files": [
{
"name": "NotoSansGeorgian/NotoSansGeorgian_10.cpfont",
"size": 12791
},
{
"name": "NotoSansGeorgian/NotoSansGeorgian_12.cpfont",
"size": 15397
},
{
"name": "NotoSansGeorgian/NotoSansGeorgian_14.cpfont",
"size": 18693
},
{
"name": "NotoSansGeorgian/NotoSansGeorgian_16.cpfont",
"size": 22464
},
{
"name": "NotoSansGeorgian/NotoSansGeorgian_18.cpfont",
"size": 26415
} }
] ]
}, },
@@ -628,6 +545,14 @@
{ {
"name": "NotoSansHangul/NotoSansHangul_12.cpfont", "name": "NotoSansHangul/NotoSansHangul_12.cpfont",
"size": 1614395 "size": 1614395
},
{
"name": "NotoSansHangul/NotoSansHangul_14.cpfont",
"size": 2134684
},
{
"name": "NotoSansHangul/NotoSansHangul_16.cpfont",
"size": 2628464
} }
] ]
}, },
@@ -641,6 +566,10 @@
{ {
"name": "NotoSerifCJK/NotoSerifCJK_10.cpfont", "name": "NotoSerifCJK/NotoSerifCJK_10.cpfont",
"size": 2615442 "size": 2615442
},
{
"name": "NotoSerifCJK/NotoSerifCJK_12.cpfont",
"size": 3680444
} }
] ]
}, },
@@ -656,19 +585,23 @@
"files": [ "files": [
{ {
"name": "NotoSerifExtended/NotoSerifExtended_10.cpfont", "name": "NotoSerifExtended/NotoSerifExtended_10.cpfont",
"size": 525124 "size": 475791
}, },
{ {
"name": "NotoSerifExtended/NotoSerifExtended_12.cpfont", "name": "NotoSerifExtended/NotoSerifExtended_12.cpfont",
"size": 655418 "size": 592995
}, },
{ {
"name": "NotoSerifExtended/NotoSerifExtended_14.cpfont", "name": "NotoSerifExtended/NotoSerifExtended_14.cpfont",
"size": 820713 "size": 741510
}, },
{ {
"name": "NotoSerifExtended/NotoSerifExtended_16.cpfont", "name": "NotoSerifExtended/NotoSerifExtended_16.cpfont",
"size": 1006302 "size": 909403
},
{
"name": "NotoSerifExtended/NotoSerifExtended_18.cpfont",
"size": 1132139
} }
] ]
}, },
@@ -768,38 +701,6 @@
} }
] ]
}, },
{
"name": "Sourcerer",
"description": "Thicker versionj of Source Serif",
"styles": [
"regular",
"bold",
"italic",
"bolditalic"
],
"files": [
{
"name": "Sourcerer/Sourcerer_10.cpfont",
"size": 253272
},
{
"name": "Sourcerer/Sourcerer_12.cpfont",
"size": 303974
},
{
"name": "Sourcerer/Sourcerer_14.cpfont",
"size": 366935
},
{
"name": "Sourcerer/Sourcerer_16.cpfont",
"size": 435715
},
{
"name": "Sourcerer/Sourcerer_18.cpfont",
"size": 536040
}
]
},
{ {
"name": "SourceSans3", "name": "SourceSans3",
"description": "Adobe humanist sans-serif (Latin, Greek, Cyrillic)", "description": "Adobe humanist sans-serif (Latin, Greek, Cyrillic)",
@@ -812,23 +713,23 @@
"files": [ "files": [
{ {
"name": "SourceSans3/SourceSans3_10.cpfont", "name": "SourceSans3/SourceSans3_10.cpfont",
"size": 380803 "size": 308750
}, },
{ {
"name": "SourceSans3/SourceSans3_12.cpfont", "name": "SourceSans3/SourceSans3_12.cpfont",
"size": 470341 "size": 376818
}, },
{ {
"name": "SourceSans3/SourceSans3_14.cpfont", "name": "SourceSans3/SourceSans3_14.cpfont",
"size": 561177 "size": 446470
}, },
{ {
"name": "SourceSans3/SourceSans3_16.cpfont", "name": "SourceSans3/SourceSans3_16.cpfont",
"size": 669252 "size": 528985
}, },
{ {
"name": "SourceSans3/SourceSans3_18.cpfont", "name": "SourceSans3/SourceSans3_18.cpfont",
"size": 792752 "size": 623347
} }
] ]
}, },
@@ -844,23 +745,55 @@
"files": [ "files": [
{ {
"name": "SourceSerif4/SourceSerif4_10.cpfont", "name": "SourceSerif4/SourceSerif4_10.cpfont",
"size": 302084 "size": 302374
}, },
{ {
"name": "SourceSerif4/SourceSerif4_12.cpfont", "name": "SourceSerif4/SourceSerif4_12.cpfont",
"size": 359428 "size": 359785
}, },
{ {
"name": "SourceSerif4/SourceSerif4_14.cpfont", "name": "SourceSerif4/SourceSerif4_14.cpfont",
"size": 429133 "size": 429580
}, },
{ {
"name": "SourceSerif4/SourceSerif4_16.cpfont", "name": "SourceSerif4/SourceSerif4_16.cpfont",
"size": 508479 "size": 509015
}, },
{ {
"name": "SourceSerif4/SourceSerif4_18.cpfont", "name": "SourceSerif4/SourceSerif4_18.cpfont",
"size": 599286 "size": 599933
}
]
},
{
"name": "Sourcerer",
"description": "Thicker version of Source Serif",
"styles": [
"regular",
"bold",
"italic",
"bolditalic"
],
"files": [
{
"name": "Sourcerer/Sourcerer_10.cpfont",
"size": 253560
},
{
"name": "Sourcerer/Sourcerer_12.cpfont",
"size": 304329
},
{
"name": "Sourcerer/Sourcerer_14.cpfont",
"size": 367372
},
{
"name": "Sourcerer/Sourcerer_16.cpfont",
"size": 436241
},
{
"name": "Sourcerer/Sourcerer_18.cpfont",
"size": 536712
} }
] ]
}, },
@@ -876,23 +809,23 @@
"files": [ "files": [
{ {
"name": "Spectral/Spectral_10.cpfont", "name": "Spectral/Spectral_10.cpfont",
"size": 254374 "size": 255318
}, },
{ {
"name": "Spectral/Spectral_12.cpfont", "name": "Spectral/Spectral_12.cpfont",
"size": 309829 "size": 311041
}, },
{ {
"name": "Spectral/Spectral_14.cpfont", "name": "Spectral/Spectral_14.cpfont",
"size": 368198 "size": 369662
}, },
{ {
"name": "Spectral/Spectral_16.cpfont", "name": "Spectral/Spectral_16.cpfont",
"size": 440277 "size": 442045
}, },
{ {
"name": "Spectral/Spectral_18.cpfont", "name": "Spectral/Spectral_18.cpfont",
"size": 544960 "size": 547192
} }
] ]
}, },
@@ -908,23 +841,23 @@
"files": [ "files": [
{ {
"name": "Vollkorn/Vollkorn_10.cpfont", "name": "Vollkorn/Vollkorn_10.cpfont",
"size": 338666 "size": 353640
}, },
{ {
"name": "Vollkorn/Vollkorn_12.cpfont", "name": "Vollkorn/Vollkorn_12.cpfont",
"size": 404708 "size": 424365
}, },
{ {
"name": "Vollkorn/Vollkorn_14.cpfont", "name": "Vollkorn/Vollkorn_14.cpfont",
"size": 486026 "size": 508031
}, },
{ {
"name": "Vollkorn/Vollkorn_16.cpfont", "name": "Vollkorn/Vollkorn_16.cpfont",
"size": 579106 "size": 605607
}, },
{ {
"name": "Vollkorn/Vollkorn_18.cpfont", "name": "Vollkorn/Vollkorn_18.cpfont",
"size": 682774 "size": 716873
} }
] ]
} }
+17 -5
View File
@@ -44,11 +44,18 @@ except ImportError:
INTERVAL_PRESETS = { INTERVAL_PRESETS = {
"ascii": [(0x0020, 0x007E)], "ascii": [(0x0020, 0x007E)],
"latin1": [(0x0080, 0x00FF)], "latin1": [(0x0080, 0x00FF)],
"latin-ext": [(0x0020, 0x007E), (0x0080, 0x00FF), (0x0100, 0x024F), "latin-ext": [(0x0020, 0x007E), (0x0080, 0x00FF), (0x0100, 0x024F),
(0x1E00, 0x1EFF), (0x2000, 0x206F)], (0x1E00, 0x1EFF), (0x2000, 0x206F)],
"greek": [(0x0370, 0x03FF), (0x1F00, 0x1FFF)], "latin-cyrillic": [(0x0020, 0x007E), (0x0080, 0x00FF), (0x0100, 0x024F),
"cyrillic": [(0x0400, 0x04FF), (0x0500, 0x052F)], (0x1E00, 0x1EFF), (0x2000, 0x206F),
"georgian": [(0x10A0, 0x10FF), (0x2D00, 0x2D2F)], (0x0400, 0x04FF), (0x0500, 0x052F),
(0x1C80, 0x1C8F), (0x2DE0, 0x2DFF), (0xA640, 0xA69F)],
"greek": [(0x0370, 0x03FF), (0x1F00, 0x1FFF)],
"greek-letters": [(0x0370, 0x03FF)],
"musical-symbols": [(0x2660, 0x266F), (0x1D100, 0x1D1FF)],
"cyrillic": [(0x0400, 0x04FF), (0x0500, 0x052F),
(0x1C80, 0x1C8F), (0x2DE0, 0x2DFF), (0xA640, 0xA69F)],
"georgian": [(0x10A0, 0x10FF), (0x2D00, 0x2D2F)],
"armenian": [(0x0530, 0x058F)], "armenian": [(0x0530, 0x058F)],
"ethiopic": [(0x1200, 0x137F), (0x1380, 0x139F), (0x2D80, 0x2DDF)], "ethiopic": [(0x1200, 0x137F), (0x1380, 0x139F), (0x2D80, 0x2DDF)],
"vietnamese": [(0x01A0, 0x01B0), (0x1EA0, 0x1EF9)], "vietnamese": [(0x01A0, 0x01B0), (0x1EA0, 0x1EF9)],
@@ -706,6 +713,9 @@ def rasterize_font_style(fontfile, size, intervals, style_id=0, force_autohint=F
all_cps = set(g.code_point for g, _ in all_glyphs) all_cps = set(g.code_point for g, _ in all_glyphs)
kern_map = extract_kerning_fonttools(fontfile, all_cps, ppem) kern_map = extract_kerning_fonttools(fontfile, all_cps, ppem)
# SMP codepoints (> U+FFFF) cannot be stored in the uint16 kern codepoint
# field; drop them before class derivation to avoid struct.error.
kern_map = {(lcp, rcp): v for (lcp, rcp), v in kern_map.items() if lcp <= 0xFFFF and rcp <= 0xFFFF}
print(f" [{style_label}] Kerning: {len(kern_map)} pairs extracted", file=sys.stderr) print(f" [{style_label}] Kerning: {len(kern_map)} pairs extracted", file=sys.stderr)
(kern_left_classes, kern_right_classes, kern_matrix, (kern_left_classes, kern_right_classes, kern_matrix,
@@ -718,6 +728,8 @@ def rasterize_font_style(fontfile, size, intervals, style_id=0, force_autohint=F
f"{matrix_size + entries_size} bytes", file=sys.stderr) f"{matrix_size + entries_size} bytes", file=sys.stderr)
ligature_pairs = extract_ligatures_fonttools(fontfile, all_cps) ligature_pairs = extract_ligatures_fonttools(fontfile, all_cps)
# SMP codepoints overflow the uint32 packed-pair encoding; drop them.
ligature_pairs = [(pk, lc) for pk, lc in ligature_pairs if (pk >> 16) <= 0xFFFF and (pk & 0xFFFF) <= 0xFFFF]
if len(ligature_pairs) > 255: if len(ligature_pairs) > 255:
print(f" [{style_label}] WARNING: {len(ligature_pairs)} ligature pairs exceeds uint8_t max (255), truncating", print(f" [{style_label}] WARNING: {len(ligature_pairs)} ligature pairs exceeds uint8_t max (255), truncating",
file=sys.stderr) file=sys.stderr)
+22 -22
View File
@@ -35,7 +35,7 @@ families:
- name: Literata - name: Literata
description: "Screen-optimized serif (Latin, Greek, Cyrillic)" description: "Screen-optimized serif (Latin, Greek, Cyrillic)"
intervals: latin-ext,greek,cyrillic intervals: latin-cyrillic,greek-letters,musical-symbols
sizes: [10, 12, 14, 16, 18] sizes: [10, 12, 14, 16, 18]
styles: styles:
regular: {url: "https://raw.githubusercontent.com/googlefonts/literata/main/fonts/ttf/Literata-Regular.ttf"} regular: {url: "https://raw.githubusercontent.com/googlefonts/literata/main/fonts/ttf/Literata-Regular.ttf"}
@@ -45,7 +45,7 @@ families:
- name: SourceSerif4 - name: SourceSerif4
description: "Adobe transitional serif (Latin, Greek, Cyrillic)" description: "Adobe transitional serif (Latin, Greek, Cyrillic)"
intervals: latin-ext,greek,cyrillic intervals: latin-cyrillic,greek-letters,musical-symbols
sizes: [10, 12, 14, 16, 18] sizes: [10, 12, 14, 16, 18]
styles: styles:
regular: {url: "https://raw.githubusercontent.com/adobe-fonts/source-serif/release/TTF/SourceSerif4-Regular.ttf"} regular: {url: "https://raw.githubusercontent.com/adobe-fonts/source-serif/release/TTF/SourceSerif4-Regular.ttf"}
@@ -55,7 +55,7 @@ families:
- name: NotoSerifExtended - name: NotoSerifExtended
description: "Serif (Latin, Greek, Cyrillic)" description: "Serif (Latin, Greek, Cyrillic)"
intervals: latin-ext,greek,cyrillic intervals: latin-cyrillic,greek-letters,musical-symbols
sizes: [10, 12, 14, 16, 18] sizes: [10, 12, 14, 16, 18]
styles: styles:
regular: {url: "https://raw.githubusercontent.com/notofonts/NotoSerif/main/fonts/ttf/unhinted/instance_ttf/NotoSerif-Regular.ttf"} regular: {url: "https://raw.githubusercontent.com/notofonts/NotoSerif/main/fonts/ttf/unhinted/instance_ttf/NotoSerif-Regular.ttf"}
@@ -65,7 +65,7 @@ families:
- name: Merriweather - name: Merriweather
description: "Warm serif for long-form reading (Latin, Cyrillic)" description: "Warm serif for long-form reading (Latin, Cyrillic)"
intervals: latin-ext,cyrillic intervals: latin-cyrillic,musical-symbols
sizes: [10, 12, 14, 16, 18] sizes: [10, 12, 14, 16, 18]
styles: styles:
regular: {url: "https://raw.githubusercontent.com/SorkinType/Merriweather/master/fonts/ttf/Merriweather-Regular.ttf"} regular: {url: "https://raw.githubusercontent.com/SorkinType/Merriweather/master/fonts/ttf/Merriweather-Regular.ttf"}
@@ -75,7 +75,7 @@ families:
- name: Lora - name: Lora
description: "Calligraphic serif for literary reading (Latin, Cyrillic)" description: "Calligraphic serif for literary reading (Latin, Cyrillic)"
intervals: latin-ext,cyrillic intervals: latin-cyrillic,musical-symbols
sizes: [10, 12, 14, 16, 18] sizes: [10, 12, 14, 16, 18]
styles: styles:
regular: {url: "https://raw.githubusercontent.com/cyrealtype/Lora-Cyrillic/main/fonts/ttf/Lora-Regular.ttf"} regular: {url: "https://raw.githubusercontent.com/cyrealtype/Lora-Cyrillic/main/fonts/ttf/Lora-Regular.ttf"}
@@ -85,7 +85,7 @@ families:
- name: Gelasio - name: Gelasio
description: "Readable old-style serif (Latin, Cyrillic)" description: "Readable old-style serif (Latin, Cyrillic)"
intervals: latin-ext,cyrillic intervals: latin-cyrillic,musical-symbols
sizes: [10, 12, 14, 16, 18] sizes: [10, 12, 14, 16, 18]
styles: styles:
regular: {url: "https://raw.githubusercontent.com/google/fonts/main/ofl/gelasio/Gelasio%5Bwght%5D.ttf", variable: {wght: 400}} regular: {url: "https://raw.githubusercontent.com/google/fonts/main/ofl/gelasio/Gelasio%5Bwght%5D.ttf", variable: {wght: 400}}
@@ -95,7 +95,7 @@ families:
- name: GentiumBookPlus - name: GentiumBookPlus
description: "Scholarly serif with wide Unicode coverage (Latin, Greek, Cyrillic, IPA)" description: "Scholarly serif with wide Unicode coverage (Latin, Greek, Cyrillic, IPA)"
intervals: latin-ext,greek,cyrillic intervals: latin-cyrillic,greek-letters,musical-symbols
sizes: [10, 12, 14, 16, 18] sizes: [10, 12, 14, 16, 18]
styles: styles:
regular: {url: "https://raw.githubusercontent.com/google/fonts/main/ofl/gentiumbookplus/GentiumBookPlus-Regular.ttf"} regular: {url: "https://raw.githubusercontent.com/google/fonts/main/ofl/gentiumbookplus/GentiumBookPlus-Regular.ttf"}
@@ -105,7 +105,7 @@ families:
- name: IBMPlexSerif - name: IBMPlexSerif
description: "Professional serif (Latin, Greek, Cyrillic)" description: "Professional serif (Latin, Greek, Cyrillic)"
intervals: latin-ext,greek,cyrillic intervals: latin-cyrillic,greek-letters,musical-symbols
sizes: [10, 12, 14, 16, 18] sizes: [10, 12, 14, 16, 18]
styles: styles:
regular: {url: "https://raw.githubusercontent.com/google/fonts/main/ofl/ibmplexserif/IBMPlexSerif-Regular.ttf"} regular: {url: "https://raw.githubusercontent.com/google/fonts/main/ofl/ibmplexserif/IBMPlexSerif-Regular.ttf"}
@@ -115,7 +115,7 @@ families:
- name: Bitter - name: Bitter
description: "Slab serif designed for e-ink (Latin, Cyrillic)" description: "Slab serif designed for e-ink (Latin, Cyrillic)"
intervals: latin-ext,cyrillic intervals: latin-cyrillic,musical-symbols
sizes: [10, 12, 14, 16, 18] sizes: [10, 12, 14, 16, 18]
styles: styles:
regular: {url: "https://raw.githubusercontent.com/google/fonts/main/ofl/bitter/Bitter%5Bwght%5D.ttf", variable: {wght: 400}} regular: {url: "https://raw.githubusercontent.com/google/fonts/main/ofl/bitter/Bitter%5Bwght%5D.ttf", variable: {wght: 400}}
@@ -125,7 +125,7 @@ families:
- name: Readerly - name: Readerly
description: "Similar to Bookerly (Latin, Cyrillic)" description: "Similar to Bookerly (Latin, Cyrillic)"
intervals: latin-ext,cyrillic intervals: latin-cyrillic,musical-symbols
sizes: [10, 12, 14, 16, 18] sizes: [10, 12, 14, 16, 18]
styles: styles:
regular: {url: "https://raw.githubusercontent.com/nicoverbruggen/ebook-fonts/main/fonts/core/Readerly-Regular.ttf"} regular: {url: "https://raw.githubusercontent.com/nicoverbruggen/ebook-fonts/main/fonts/core/Readerly-Regular.ttf"}
@@ -135,7 +135,7 @@ families:
- name: Charis - name: Charis
description: "Great universal pick" description: "Great universal pick"
intervals: latin-ext,cyrillic intervals: latin-cyrillic,musical-symbols
sizes: [10, 12, 14, 16, 18] sizes: [10, 12, 14, 16, 18]
styles: styles:
regular: {url: "https://raw.githubusercontent.com/nicoverbruggen/ebook-fonts/main/fonts/core/NV_Charis-Regular.ttf"} regular: {url: "https://raw.githubusercontent.com/nicoverbruggen/ebook-fonts/main/fonts/core/NV_Charis-Regular.ttf"}
@@ -144,8 +144,8 @@ families:
bolditalic: {url: "https://raw.githubusercontent.com/nicoverbruggen/ebook-fonts/main/fonts/core/NV_Charis-BoldItalic.ttf"} bolditalic: {url: "https://raw.githubusercontent.com/nicoverbruggen/ebook-fonts/main/fonts/core/NV_Charis-BoldItalic.ttf"}
- name: Sourcerer - name: Sourcerer
description: "Thicker versionj of Source Serif" description: "Thicker version of Source Serif"
intervals: latin-ext,cyrillic intervals: latin-cyrillic,musical-symbols
sizes: [10, 12, 14, 16, 18] sizes: [10, 12, 14, 16, 18]
styles: styles:
regular: {url: "https://raw.githubusercontent.com/nicoverbruggen/ebook-fonts/main/fonts/core/Sourcerer-Regular.ttf"} regular: {url: "https://raw.githubusercontent.com/nicoverbruggen/ebook-fonts/main/fonts/core/Sourcerer-Regular.ttf"}
@@ -155,7 +155,7 @@ families:
- name: Spectral - name: Spectral
description: "A new and versatile serif face (Latin, Cyrillic)" description: "A new and versatile serif face (Latin, Cyrillic)"
intervals: latin-ext,cyrillic intervals: latin-cyrillic,musical-symbols
sizes: [10, 12, 14, 16, 18] sizes: [10, 12, 14, 16, 18]
styles: styles:
regular: {url: "https://raw.githubusercontent.com/google/fonts/main/ofl/spectral/Spectral-Regular.ttf"} regular: {url: "https://raw.githubusercontent.com/google/fonts/main/ofl/spectral/Spectral-Regular.ttf"}
@@ -165,7 +165,7 @@ families:
- name: Vollkorn - name: Vollkorn
description: "The free and healthy typeface for bread and butter use (Latin, Cyrillic)" description: "The free and healthy typeface for bread and butter use (Latin, Cyrillic)"
intervals: latin-ext,cyrillic intervals: latin-cyrillic,musical-symbols
sizes: [10, 12, 14, 16, 18] sizes: [10, 12, 14, 16, 18]
styles: styles:
regular: {url: "https://raw.githubusercontent.com/google/fonts/main/ofl/vollkorn/Vollkorn%5Bwght%5D.ttf", variable: {wght: 400}} regular: {url: "https://raw.githubusercontent.com/google/fonts/main/ofl/vollkorn/Vollkorn%5Bwght%5D.ttf", variable: {wght: 400}}
@@ -177,7 +177,7 @@ families:
- name: NotoSansExtended - name: NotoSansExtended
description: "Sans-serif (Latin, Greek, Cyrillic, Georgian, Armenian, Ethiopic)" description: "Sans-serif (Latin, Greek, Cyrillic, Georgian, Armenian, Ethiopic)"
intervals: latin-ext,greek,cyrillic,georgian,armenian,ethiopic intervals: latin-cyrillic,greek-letters,georgian,armenian,ethiopic,musical-symbols
sizes: [10, 12, 14, 16, 18] sizes: [10, 12, 14, 16, 18]
styles: styles:
regular: {path: "builtinFonts/source/NotoSans/NotoSans-Regular.ttf"} regular: {path: "builtinFonts/source/NotoSans/NotoSans-Regular.ttf"}
@@ -187,7 +187,7 @@ families:
- name: Arimo - name: Arimo
description: "Metric-compatible with Arial (Latin, Greek, Cyrillic)" description: "Metric-compatible with Arial (Latin, Greek, Cyrillic)"
intervals: latin-ext,cyrillic intervals: latin-cyrillic,musical-symbols
sizes: [10, 12, 14, 16, 18] sizes: [10, 12, 14, 16, 18]
styles: styles:
regular: {url: "https://raw.githubusercontent.com/google/fonts/main/ofl/arimo/Arimo%5Bwght%5D.ttf", variable: {wght: 400}} regular: {url: "https://raw.githubusercontent.com/google/fonts/main/ofl/arimo/Arimo%5Bwght%5D.ttf", variable: {wght: 400}}
@@ -197,7 +197,7 @@ families:
- name: Inter - name: Inter
description: "Modern sans-serif (Latin, Greek, Cyrillic)" description: "Modern sans-serif (Latin, Greek, Cyrillic)"
intervals: latin-ext,greek,cyrillic intervals: latin-cyrillic,greek-letters,musical-symbols
sizes: [10, 12, 14, 16, 18] sizes: [10, 12, 14, 16, 18]
styles: styles:
regular: {url: "https://raw.githubusercontent.com/google/fonts/main/ofl/inter/Inter%5Bopsz%2Cwght%5D.ttf", variable: {wght: 400, opsz: 14}} regular: {url: "https://raw.githubusercontent.com/google/fonts/main/ofl/inter/Inter%5Bopsz%2Cwght%5D.ttf", variable: {wght: 400, opsz: 14}}
@@ -207,7 +207,7 @@ families:
- name: SourceSans3 - name: SourceSans3
description: "Adobe humanist sans-serif (Latin, Greek, Cyrillic)" description: "Adobe humanist sans-serif (Latin, Greek, Cyrillic)"
intervals: latin-ext,greek,cyrillic intervals: latin-cyrillic,greek-letters,musical-symbols
sizes: [10, 12, 14, 16, 18] sizes: [10, 12, 14, 16, 18]
styles: styles:
regular: {url: "https://raw.githubusercontent.com/adobe-fonts/source-sans/release/TTF/SourceSans3-Regular.ttf"} regular: {url: "https://raw.githubusercontent.com/adobe-fonts/source-sans/release/TTF/SourceSans3-Regular.ttf"}
@@ -217,7 +217,7 @@ families:
- name: IBMPlexSans - name: IBMPlexSans
description: "IBM corporate sans-serif (Latin, Greek, Cyrillic)" description: "IBM corporate sans-serif (Latin, Greek, Cyrillic)"
intervals: latin-ext,greek,cyrillic intervals: latin-cyrillic,greek-letters,musical-symbols
sizes: [10, 12, 14, 16, 18] sizes: [10, 12, 14, 16, 18]
styles: styles:
regular: {url: "https://raw.githubusercontent.com/IBM/plex/master/packages/plex-sans/fonts/complete/ttf/IBMPlexSans-Regular.ttf"} regular: {url: "https://raw.githubusercontent.com/IBM/plex/master/packages/plex-sans/fonts/complete/ttf/IBMPlexSans-Regular.ttf"}
@@ -227,7 +227,7 @@ families:
- name: Alegreya - name: Alegreya
description: "Calligraphic serif/display (Latin, Greek, Cyrillic)" description: "Calligraphic serif/display (Latin, Greek, Cyrillic)"
intervals: latin-ext,greek,cyrillic intervals: latin-cyrillic,greek-letters,musical-symbols
sizes: [10, 12, 14, 16, 18] sizes: [10, 12, 14, 16, 18]
styles: styles:
regular: {url: "https://raw.githubusercontent.com/google/fonts/main/ofl/alegreya/Alegreya%5Bwght%5D.ttf", variable: {wght: 400}} regular: {url: "https://raw.githubusercontent.com/google/fonts/main/ofl/alegreya/Alegreya%5Bwght%5D.ttf", variable: {wght: 400}}
@@ -239,7 +239,7 @@ families:
- name: IBMPlexMono - name: IBMPlexMono
description: "Monospace for code and technical reading (Latin, Greek, Cyrillic)" description: "Monospace for code and technical reading (Latin, Greek, Cyrillic)"
intervals: latin-ext,greek,cyrillic intervals: latin-cyrillic,greek-letters,musical-symbols
sizes: [10, 12, 14, 16, 18] sizes: [10, 12, 14, 16, 18]
styles: styles:
regular: {url: "https://raw.githubusercontent.com/google/fonts/main/ofl/ibmplexmono/IBMPlexMono-Regular.ttf"} regular: {url: "https://raw.githubusercontent.com/google/fonts/main/ofl/ibmplexmono/IBMPlexMono-Regular.ttf"}