Fix images, add automatic changelog generation, increment version

This commit is contained in:
Slavfox 2021-06-12 22:02:44 +02:00
parent 9171ead75b
commit 6f28ca4050
11 changed files with 456 additions and 102 deletions

View File

@ -9,6 +9,226 @@ The format is based on [Keep a Changelog], and this project adheres to
Nothing!
## [1.10.0]
### Added
- Ǝ (U+018E LATIN CAPITAL LETTER REVERSED E)
- Ə (U+018F LATIN CAPITAL LETTER SCHWA)
- Ƒ (U+0191 LATIN CAPITAL LETTER F WITH HOOK)
- Ɯ (U+019C LATIN CAPITAL LETTER TURNED M)
- Ɲ (U+019D LATIN CAPITAL LETTER N WITH LEFT HOOK)
- ƞ (U+019E LATIN SMALL LETTER N WITH LONG RIGHT LEG)
- Ɵ (U+019F LATIN CAPITAL LETTER O WITH MIDDLE TILDE)
- Ơ (U+01A0 LATIN CAPITAL LETTER O WITH HORN)
- ơ (U+01A1 LATIN SMALL LETTER O WITH HORN)
- Ƣ (U+01A2 LATIN CAPITAL LETTER OI)
- ƣ (U+01A3 LATIN SMALL LETTER OI)
- Ƥ (U+01A4 LATIN CAPITAL LETTER P WITH HOOK)
- ƥ (U+01A5 LATIN SMALL LETTER P WITH HOOK)
- Ʊ (U+01B1 LATIN CAPITAL LETTER UPSILON)
- Ʋ (U+01B2 LATIN CAPITAL LETTER V WITH HOOK)
- Ƴ (U+01B3 LATIN CAPITAL LETTER Y WITH HOOK)
- ƴ (U+01B4 LATIN SMALL LETTER Y WITH HOOK)
- Ƶ (U+01B5 LATIN CAPITAL LETTER Z WITH STROKE)
- ƶ (U+01B6 LATIN SMALL LETTER Z WITH STROKE)
- Ʒ (U+01B7 LATIN CAPITAL LETTER EZH)
- Ƹ (U+01B8 LATIN CAPITAL LETTER EZH REVERSED)
- ƹ (U+01B9 LATIN SMALL LETTER EZH REVERSED)
- ƺ (U+01BA LATIN SMALL LETTER EZH WITH TAIL)
- ƾ (U+01BE LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE)
- ǀ (U+01C0 LATIN LETTER DENTAL CLICK)
- ǁ (U+01C1 LATIN LETTER LATERAL CLICK)
- ǂ (U+01C2 LATIN LETTER ALVEOLAR CLICK)
- Ǽ (U+01FC LATIN CAPITAL LETTER AE WITH ACUTE)
- ǽ (U+01FD LATIN SMALL LETTER AE WITH ACUTE)
- Ǿ (U+01FE LATIN CAPITAL LETTER O WITH STROKE AND ACUTE)
- ǿ (U+01FF LATIN SMALL LETTER O WITH STROKE AND ACUTE)
- Ɂ (U+0241 LATIN CAPITAL LETTER GLOTTAL STOP)
- ɂ (U+0242 LATIN SMALL LETTER GLOTTAL STOP)
- ɐ (U+0250 LATIN SMALL LETTER TURNED A)
- ɑ (U+0251 LATIN SMALL LETTER ALPHA)
- ɒ (U+0252 LATIN SMALL LETTER TURNED ALPHA)
- ɓ (U+0253 LATIN SMALL LETTER B WITH HOOK)
- ɔ (U+0254 LATIN SMALL LETTER OPEN O)
- ɕ (U+0255 LATIN SMALL LETTER C WITH CURL)
- ɖ (U+0256 LATIN SMALL LETTER D WITH TAIL)
- ɗ (U+0257 LATIN SMALL LETTER D WITH HOOK)
- ɘ (U+0258 LATIN SMALL LETTER REVERSED E)
- ə (U+0259 LATIN SMALL LETTER SCHWA)
- ɚ (U+025A LATIN SMALL LETTER SCHWA WITH HOOK)
- ɛ (U+025B LATIN SMALL LETTER OPEN E)
- ɜ (U+025C LATIN SMALL LETTER REVERSED OPEN E)
- ɝ (U+025D LATIN SMALL LETTER REVERSED OPEN E WITH HOOK)
- ɞ (U+025E LATIN SMALL LETTER CLOSED REVERSED OPEN E)
- ɟ (U+025F LATIN SMALL LETTER DOTLESS J WITH STROKE)
- ɠ (U+0260 LATIN SMALL LETTER G WITH HOOK)
- ɡ (U+0261 LATIN SMALL LETTER SCRIPT G)
- ɢ (U+0262 LATIN LETTER SMALL CAPITAL G)
- ɣ (U+0263 LATIN SMALL LETTER GAMMA)
- ɤ (U+0264 LATIN SMALL LETTER RAMS HORN)
- ɥ (U+0265 LATIN SMALL LETTER TURNED H)
- ɦ (U+0266 LATIN SMALL LETTER H WITH HOOK)
- ɧ (U+0267 LATIN SMALL LETTER HENG WITH HOOK)
- ɨ (U+0268 LATIN SMALL LETTER I WITH STROKE)
- ɩ (U+0269 LATIN SMALL LETTER IOTA)
- ɪ (U+026A LATIN LETTER SMALL CAPITAL I)
- ɫ (U+026B LATIN SMALL LETTER L WITH MIDDLE TILDE)
- ɬ (U+026C LATIN SMALL LETTER L WITH BELT)
- ɭ (U+026D LATIN SMALL LETTER L WITH RETROFLEX HOOK)
- ɮ (U+026E LATIN SMALL LETTER LEZH)
- ɯ (U+026F LATIN SMALL LETTER TURNED M)
- ɰ (U+0270 LATIN SMALL LETTER TURNED M WITH LONG LEG)
- ɱ (U+0271 LATIN SMALL LETTER M WITH HOOK)
- ɲ (U+0272 LATIN SMALL LETTER N WITH LEFT HOOK)
- ɳ (U+0273 LATIN SMALL LETTER N WITH RETROFLEX HOOK)
- ɴ (U+0274 LATIN LETTER SMALL CAPITAL N)
- ɵ (U+0275 LATIN SMALL LETTER BARRED O)
- ɶ (U+0276 LATIN LETTER SMALL CAPITAL OE)
- ɷ (U+0277 LATIN SMALL LETTER CLOSED OMEGA)
- ɸ (U+0278 LATIN SMALL LETTER PHI)
- ɹ (U+0279 LATIN SMALL LETTER TURNED R)
- ɺ (U+027A LATIN SMALL LETTER TURNED R WITH LONG LEG)
- ɻ (U+027B LATIN SMALL LETTER TURNED R WITH HOOK)
- ɼ (U+027C LATIN SMALL LETTER R WITH LONG LEG)
- ɽ (U+027D LATIN SMALL LETTER R WITH TAIL)
- ɾ (U+027E LATIN SMALL LETTER R WITH FISHHOOK)
- ɿ (U+027F LATIN SMALL LETTER REVERSED R WITH FISHHOOK)
- ʀ (U+0280 LATIN LETTER SMALL CAPITAL R)
- ʁ (U+0281 LATIN LETTER SMALL CAPITAL INVERTED R)
- ʂ (U+0282 LATIN SMALL LETTER S WITH HOOK)
- ʃ (U+0283 LATIN SMALL LETTER ESH)
- ʄ (U+0284 LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK)
- ʅ (U+0285 LATIN SMALL LETTER SQUAT REVERSED ESH)
- ʆ (U+0286 LATIN SMALL LETTER ESH WITH CURL)
- ʇ (U+0287 LATIN SMALL LETTER TURNED T)
- ʈ (U+0288 LATIN SMALL LETTER T WITH RETROFLEX HOOK)
- ʉ (U+0289 LATIN SMALL LETTER U BAR)
- ʊ (U+028A LATIN SMALL LETTER UPSILON)
- ʋ (U+028B LATIN SMALL LETTER V WITH HOOK)
- ʌ (U+028C LATIN SMALL LETTER TURNED V)
- ʍ (U+028D LATIN SMALL LETTER TURNED W)
- ʎ (U+028E LATIN SMALL LETTER TURNED Y)
- ʏ (U+028F LATIN LETTER SMALL CAPITAL Y)
- ʐ (U+0290 LATIN SMALL LETTER Z WITH RETROFLEX HOOK)
- ʑ (U+0291 LATIN SMALL LETTER Z WITH CURL)
- ʒ (U+0292 LATIN SMALL LETTER EZH)
- ʓ (U+0293 LATIN SMALL LETTER EZH WITH CURL)
- ʔ (U+0294 LATIN LETTER GLOTTAL STOP)
- ʕ (U+0295 LATIN LETTER PHARYNGEAL VOICED FRICATIVE)
- ʖ (U+0296 LATIN LETTER INVERTED GLOTTAL STOP)
- ʗ (U+0297 LATIN LETTER STRETCHED C)
- ʘ (U+0298 LATIN LETTER BILABIAL CLICK)
- ʙ (U+0299 LATIN LETTER SMALL CAPITAL B)
- ʚ (U+029A LATIN SMALL LETTER CLOSED OPEN E)
- ʛ (U+029B LATIN LETTER SMALL CAPITAL G WITH HOOK)
- ʜ (U+029C LATIN LETTER SMALL CAPITAL H)
- ʝ (U+029D LATIN SMALL LETTER J WITH CROSSED-TAIL)
- ʞ (U+029E LATIN SMALL LETTER TURNED K)
- ʟ (U+029F LATIN LETTER SMALL CAPITAL L)
- ʠ (U+02A0 LATIN SMALL LETTER Q WITH HOOK)
- ʡ (U+02A1 LATIN LETTER GLOTTAL STOP WITH STROKE)
- ʢ (U+02A2 LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE)
- ʮ (U+02AE LATIN SMALL LETTER TURNED H WITH FISHHOOK)
- Ά (U+0386 GREEK CAPITAL LETTER ALPHA WITH TONOS)
- Έ (U+0388 GREEK CAPITAL LETTER EPSILON WITH TONOS)
- Ή (U+0389 GREEK CAPITAL LETTER ETA WITH TONOS)
- Ί (U+038A GREEK CAPITAL LETTER IOTA WITH TONOS)
- Ό (U+038C GREEK CAPITAL LETTER OMICRON WITH TONOS)
- Ύ (U+038E GREEK CAPITAL LETTER UPSILON WITH TONOS)
- Ώ (U+038F GREEK CAPITAL LETTER OMEGA WITH TONOS)
- ΐ (U+0390 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS)
- έ (U+03AD GREEK SMALL LETTER EPSILON WITH TONOS)
- ή (U+03AE GREEK SMALL LETTER ETA WITH TONOS)
- ί (U+03AF GREEK SMALL LETTER IOTA WITH TONOS)
- ΰ (U+03B0 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS)
- ϊ (U+03CA GREEK SMALL LETTER IOTA WITH DIALYTIKA)
- ϋ (U+03CB GREEK SMALL LETTER UPSILON WITH DIALYTIKA)
- ό (U+03CC GREEK SMALL LETTER OMICRON WITH TONOS)
- ύ (U+03CD GREEK SMALL LETTER UPSILON WITH TONOS)
- ώ (U+03CE GREEK SMALL LETTER OMEGA WITH TONOS)
- ϕ (U+03D5 GREEK PHI SYMBOL)
- Ϛ (U+03DA GREEK LETTER STIGMA)
- ϛ (U+03DB GREEK SMALL LETTER STIGMA)
- Ϝ (U+03DC GREEK LETTER DIGAMMA)
- ϝ (U+03DD GREEK SMALL LETTER DIGAMMA)
- ϴ (U+03F4 GREEK CAPITAL THETA SYMBOL)
- Ϸ (U+03F7 GREEK CAPITAL LETTER SHO)
- ϸ (U+03F8 GREEK SMALL LETTER SHO)
- Ϲ (U+03F9 GREEK CAPITAL LUNATE SIGMA SYMBOL)
-  (U+E204)
-  (U+E21E)
-  (U+E256)
-  (U+E271)
-  (U+E28A)
-  (U+E28B)
-  (U+E5FC)
-  (U+E62A)
-  (U+E64E)
-  (U+E681)
-  (U+E70E)
-  (U+E71E)
-  (U+E749)
-  (U+E74A)
-  (U+E74E)
-  (U+E758)
-  (U+E759)
-  (U+E764)
-  (U+E781)
-  (U+E796)
-  (U+E7B5)
-  (U+E7C4)
-  (U+EFFA)
-  (U+EFFB)
-  (U+EFFC)
-  (U+EFFD)
-  (U+F016)
-  (U+F02C)
-  (U+F031)
-  (U+F032)
-  (U+F033)
-  (U+F034)
-  (U+F035)
-  (U+F03D)
-  (U+F067)
-  (U+F068)
-  (U+F069)
-  (U+F09E)
-  (U+F111)
-  (U+F121)
-  (U+F15B)
-  (U+F15C)
-  (U+F1C0)
-  (U+F1C1)
-  (U+F1C2)
-  (U+F1C3)
-  (U+F1C4)
-  (U+F1C5)
-  (U+F1C6)
-  (U+F298)
-  (U+F408)
-  (U+F410)
-  (U+F440)
-  (U+F462)
-  (U+F481)
-  (U+F482)
-  (U+F48A)
-  (U+F713)
-  (U+F718)
- 謹 (U+FABF CJK COMPATIBILITY IDEOGRAPH-FABF)
- ﵂ (U+FD42)
### Changed
- ò (U+00F2 LATIN SMALL LETTER O WITH GRAVE)
- ó (U+00F3 LATIN SMALL LETTER O WITH ACUTE)
- ô (U+00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX)
- õ (U+00F5 LATIN SMALL LETTER O WITH TILDE)
- ö (U+00F6 LATIN SMALL LETTER O WITH DIAERESIS)
- ō (U+014D LATIN SMALL LETTER O WITH MACRON)
- ŏ (U+014F LATIN SMALL LETTER O WITH BREVE)
- ő (U+0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE)
## [1.9.3]
### Added
@ -536,6 +756,8 @@ Still broken on Windows.
[Keep a Changelog]: https://keepachangelog.com/en/1.0.0/
[Semantic Versioning]: https://semver.org/spec/v2.0.0.html
[unreleased]: https://github.com/slavfox/Cozette/compare/v.1.8.3...HEAD
[1.10.0]: https://github.com/slavfox/Cozette/compare/v.1.9.3...v.1.10.0
[1.9.3]: https://github.com/slavfox/Cozette/compare/v.1.9.2...v.1.9.3
[1.9.2]: https://github.com/slavfox/Cozette/compare/v.1.9.0...v.1.9.2
[1.9.0]: https://github.com/slavfox/Cozette/compare/v.1.8.3...v.1.9.0
[1.8.3]: https://github.com/slavfox/Cozette/compare/v.1.8.2...v.1.8.3

View File

@ -4,7 +4,7 @@ FullName: Cozette
FamilyName: Cozette
Weight: Medium
Copyright: (c) 2020 Slavfox
Version: 1.093
Version: 1.100
ItalicAngle: 0
UnderlinePosition: -100
UnderlineWidth: 50
@ -22,7 +22,7 @@ OS2Version: 1
OS2_WeightWidthSlopeOnly: 0
OS2_UseTypoMetrics: 0
CreationTime: -2082812035
ModificationTime: 1623462779
ModificationTime: 1623526037
PfmFamily: 49
TTFWeight: 500
TTFWidth: 5
@ -11889,66 +11889,77 @@ EndChar
StartChar: uniE21E
Encoding: 57886 57886 1686
Width: 1024
Flags: W
LayerCount: 2
EndChar
StartChar: uniE256
Encoding: 57942 57942 1687
Width: 1024
Flags: W
LayerCount: 2
EndChar
StartChar: uniE781
Encoding: 59265 59265 1688
Width: 1024
Flags: W
LayerCount: 2
EndChar
StartChar: uniE74E
Encoding: 59214 59214 1689
Width: 1024
Flags: W
LayerCount: 2
EndChar
StartChar: uniE70E
Encoding: 59150 59150 1690
Width: 1024
Flags: W
LayerCount: 2
EndChar
StartChar: uniE749
Encoding: 59209 59209 1691
Width: 1024
Flags: W
LayerCount: 2
EndChar
StartChar: uniE74A
Encoding: 59210 59210 1692
Width: 1024
Flags: W
LayerCount: 2
EndChar
StartChar: uniF718
Encoding: 63256 63256 1693
Width: 1024
Flags: W
LayerCount: 2
EndChar
StartChar: uniF713
Encoding: 63251 63251 1694
Width: 1024
Flags: W
LayerCount: 2
EndChar
StartChar: uniE758
Encoding: 59224 59224 1695
Width: 1024
Flags: W
LayerCount: 2
EndChar
StartChar: uniE759
Encoding: 59225 59225 1696
Width: 1024
Flags: W
LayerCount: 2
EndChar
@ -11969,12 +11980,14 @@ EndChar
StartChar: uniE64E
Encoding: 58958 58958 1699
Width: 1024
Flags: W
LayerCount: 2
EndChar
StartChar: uniE681
Encoding: 59009 59009 1700
Width: 1024
Flags: W
LayerCount: 2
EndChar
@ -12030,6 +12043,7 @@ EndChar
StartChar: uniF298
Encoding: 62104 62104 1708
Width: 1024
Flags: W
LayerCount: 2
EndChar
@ -12043,12 +12057,14 @@ EndChar
StartChar: uniE28B
Encoding: 57995 57995 1710
Width: 1024
Flags: W
LayerCount: 2
EndChar
StartChar: uniE28A
Encoding: 57994 57994 1711
Width: 1024
Flags: W
LayerCount: 2
EndChar
@ -12062,24 +12078,28 @@ EndChar
StartChar: uniE5FC
Encoding: 58876 58876 1713
Width: 1024
Flags: W
LayerCount: 2
EndChar
StartChar: uniF408
Encoding: 62472 62472 1714
Width: 1024
Flags: W
LayerCount: 2
EndChar
StartChar: uniF121
Encoding: 61729 61729 1715
Width: 1024
Flags: W
LayerCount: 2
EndChar
StartChar: uniE62A
Encoding: 58922 58922 1716
Width: 1024
Flags: W
LayerCount: 2
EndChar
@ -12198,6 +12218,7 @@ EndChar
StartChar: uni0261
Encoding: 609 609 1733
Width: 1024
Flags: W
LayerCount: 2
EndChar
@ -12225,6 +12246,7 @@ EndChar
StartChar: uni0265
Encoding: 613 613 1737
Width: 1024
Flags: W
LayerCount: 2
EndChar
@ -12245,24 +12267,28 @@ EndChar
StartChar: uni0241
Encoding: 577 577 1740
Width: 1024
Flags: W
LayerCount: 2
EndChar
StartChar: uni0242
Encoding: 578 578 1741
Width: 1024
Flags: W
LayerCount: 2
EndChar
StartChar: uni0253
Encoding: 595 595 1742
Width: 1024
Flags: W
LayerCount: 2
EndChar
StartChar: uni026F
Encoding: 623 623 1743
Width: 1024
Flags: W
LayerCount: 2
EndChar
@ -12472,18 +12498,21 @@ EndChar
StartChar: uni0293
Encoding: 659 659 1773
Width: 1024
Flags: W
LayerCount: 2
EndChar
StartChar: uni0294
Encoding: 660 660 1774
Width: 1024
Flags: W
LayerCount: 2
EndChar
StartChar: uni0295
Encoding: 661 661 1775
Width: 1024
Flags: W
LayerCount: 2
EndChar
@ -12560,12 +12589,14 @@ EndChar
StartChar: uni0268
Encoding: 616 616 1786
Width: 1024
Flags: W
LayerCount: 2
EndChar
StartChar: uni0269
Encoding: 617 617 1787
Width: 1024
Flags: W
LayerCount: 2
EndChar
@ -12600,12 +12631,14 @@ EndChar
StartChar: uni02AE
Encoding: 686 686 1792
Width: 1024
Flags: W
LayerCount: 2
EndChar
StartChar: uni0286
Encoding: 646 646 1793
Width: 1024
Flags: W
LayerCount: 2
EndChar
@ -12633,6 +12666,7 @@ EndChar
StartChar: uni0284
Encoding: 644 644 1797
Width: 1024
Flags: W
LayerCount: 2
EndChar
@ -12646,12 +12680,14 @@ EndChar
StartChar: uni0298
Encoding: 664 664 1799
Width: 1024
Flags: W
LayerCount: 2
EndChar
StartChar: uni02A1
Encoding: 673 673 1800
Width: 1024
Flags: W
LayerCount: 2
EndChar
@ -12700,6 +12736,7 @@ EndChar
StartChar: upsilondieresis
Encoding: 971 971 1807
Width: 1024
Flags: W
LayerCount: 2
EndChar
@ -12797,30 +12834,35 @@ EndChar
StartChar: uni03F4
Encoding: 1012 1012 1821
Width: 1024
Flags: W
LayerCount: 2
EndChar
StartChar: uni03F8
Encoding: 1016 1016 1822
Width: 1024
Flags: W
LayerCount: 2
EndChar
StartChar: uni03F7
Encoding: 1015 1015 1823
Width: 1024
Flags: W
LayerCount: 2
EndChar
StartChar: uni03F9
Encoding: 1017 1017 1824
Width: 1024
Flags: W
LayerCount: 2
EndChar
StartChar: uni03DB
Encoding: 987 987 1825
Width: 1024
Flags: W
LayerCount: 2
EndChar
@ -12834,6 +12876,7 @@ EndChar
StartChar: uni03DC
Encoding: 988 988 1827
Width: 1024
Flags: W
LayerCount: 2
EndChar
@ -12903,6 +12946,7 @@ EndChar
StartChar: uni019E
Encoding: 414 414 1837
Width: 1024
Flags: W
LayerCount: 2
EndChar
@ -12916,6 +12960,7 @@ EndChar
StartChar: uni019F
Encoding: 415 415 1839
Width: 1024
Flags: W
LayerCount: 2
EndChar
@ -12936,6 +12981,7 @@ EndChar
StartChar: uni01A2
Encoding: 418 418 1842
Width: 1024
Flags: W
LayerCount: 2
EndChar
@ -12991,12 +13037,14 @@ EndChar
StartChar: uni01B5
Encoding: 437 437 1850
Width: 1024
Flags: W
LayerCount: 2
EndChar
StartChar: uni01B6
Encoding: 438 438 1851
Width: 1024
Flags: W
LayerCount: 2
EndChar
@ -13052,22 +13100,25 @@ EndChar
StartChar: uni01BE
Encoding: 446 446 1859
Width: 1024
Flags: W
LayerCount: 2
EndChar
StartChar: uniF48A
Encoding: 62602 62602 1860
Width: 1024
Flags: W
LayerCount: 2
EndChar
StartChar: uniFABF
Encoding: 64191 64191 1861
Width: 1024
Flags: W
LayerCount: 2
EndChar
EndChars
BitmapFont: 13 1862 10 3 1
BitmapFont: 13 1863 10 3 1
BDFStartProperties: 42
FONT 1 "-slavfox-Cozette-Medium-R-Normal--13-120-75-75-M-60-ISO10646-1"
COMMENT 0 "(c) 2020 Slavfox"
@ -13089,7 +13140,7 @@ FONTNAME_REGISTRY 16 ""
FONT_NAME 16 "Cozette"
FACE_NAME 16 "Cozette"
COPYRIGHT 16 "(c) 2020 Slavfox"
FONT_VERSION 16 "1.093"
FONT_VERSION 16 "1.100"
FONT_ASCENT 18 10
FONT_DESCENT 18 3
UNDERLINE_POSITION 18 -19

View File

@ -13,6 +13,7 @@ numpy = "*"
Pillow = "*"
fonttools = "*"
crayons = "*"
gitpython = "*"
[requires]
python_version = "3.8"

181
Pipfile.lock generated
View File

@ -1,7 +1,7 @@
{
"_meta": {
"hash": {
"sha256": "fbc5bf15a267368c830aa098f5765fbd1a8b70feb242039f517a2550fd29f22d"
"sha256": "bc04ce2d2af88a7497bf675273f539988b4307f3db53f1c616fb54cc77e122d5"
},
"pipfile-spec": 6,
"requires": {
@ -21,50 +21,70 @@
"sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b",
"sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
"version": "==0.4.4"
},
"crayons": {
"hashes": [
"sha256:50e5fa729d313e2c607ae8bf7b53bb487652e10bd8e7a1e08c4bc8bf62755ffc",
"sha256:8c9e4a3a607bc10e9a9140d496ecd16c6805088dd16c852c378f1f1d5db7aeb6"
"sha256:bd33b7547800f2cfbd26b38431f9e64b487a7de74a947b0fafc89b45a601813f",
"sha256:e73ad105c78935d71fe454dd4b85c5c437ba199294e7ffd3341842bc683654b1"
],
"index": "pypi",
"version": "==0.3.0"
"version": "==0.4.0"
},
"fonttools": {
"hashes": [
"sha256:0c16d5da7846a92aedcb448277d13d3b729f7de48a917768d97ebd0d17067d7f",
"sha256:bd93818f304b7f0d087e8ca9b5b3ed0819a68fb6c1a4763134a92bb046c2c31b"
"sha256:1a3938882505445e4cb9f47d0ec13b6401f003017c657d85f5b791d764714f16",
"sha256:df7fab667b039cd2a00a1fffcba73a32b2c630ef2a12ab7069ef6df5333f20c3"
],
"index": "pypi",
"version": "==4.3.0"
"version": "==4.24.4"
},
"gitdb": {
"hashes": [
"sha256:6c4cc71933456991da20917998acbe6cf4fb41eeaab7d6d67fbc05ecd4c865b0",
"sha256:96bf5c08b157a666fec41129e6d327235284cca4c81e92109260f353ba138005"
],
"markers": "python_version >= '3.4'",
"version": "==4.0.7"
},
"gitpython": {
"hashes": [
"sha256:29fe82050709760081f588dd50ce83504feddbebdc4da6956d02351552b1c135",
"sha256:ee24bdc93dce357630764db659edaf6b8d664d4ff5447ccfeedd2dc5c253f41e"
],
"index": "pypi",
"version": "==3.1.17"
},
"numpy": {
"hashes": [
"sha256:1786a08236f2c92ae0e70423c45e1e62788ed33028f94ca99c4df03f5be6b3c6",
"sha256:17aa7a81fe7599a10f2b7d95856dc5cf84a4eefa45bc96123cbbc3ebc568994e",
"sha256:20b26aaa5b3da029942cdcce719b363dbe58696ad182aff0e5dcb1687ec946dc",
"sha256:2d75908ab3ced4223ccba595b48e538afa5ecc37405923d1fea6906d7c3a50bc",
"sha256:39d2c685af15d3ce682c99ce5925cc66efc824652e10990d2462dfe9b8918c6a",
"sha256:56bc8ded6fcd9adea90f65377438f9fea8c05fcf7c5ba766bef258d0da1554aa",
"sha256:590355aeade1a2eaba17617c19edccb7db8d78760175256e3cf94590a1a964f3",
"sha256:70a840a26f4e61defa7bdf811d7498a284ced303dfbc35acb7be12a39b2aa121",
"sha256:77c3bfe65d8560487052ad55c6998a04b654c2fbc36d546aef2b2e511e760971",
"sha256:9537eecf179f566fd1c160a2e912ca0b8e02d773af0a7a1120ad4f7507cd0d26",
"sha256:9acdf933c1fd263c513a2df3dceecea6f3ff4419d80bf238510976bf9bcb26cd",
"sha256:ae0975f42ab1f28364dcda3dde3cf6c1ddab3e1d4b2909da0cb0191fa9ca0480",
"sha256:b3af02ecc999c8003e538e60c89a2b37646b39b688d4e44d7373e11c2debabec",
"sha256:b6ff59cee96b454516e47e7721098e6ceebef435e3e21ac2d6c3b8b02628eb77",
"sha256:b765ed3930b92812aa698a455847141869ef755a87e099fddd4ccf9d81fffb57",
"sha256:c98c5ffd7d41611407a1103ae11c8b634ad6a43606eca3e2a5a269e5d6e8eb07",
"sha256:cf7eb6b1025d3e169989416b1adcd676624c2dbed9e3bcb7137f51bfc8cc2572",
"sha256:d92350c22b150c1cae7ebb0ee8b5670cc84848f6359cf6b5d8f86617098a9b73",
"sha256:e422c3152921cece8b6a2fb6b0b4d73b6579bd20ae075e7d15143e711f3ca2ca",
"sha256:e840f552a509e3380b0f0ec977e8124d0dc34dc0e68289ca28f4d7c1d0d79474",
"sha256:f3d0a94ad151870978fb93538e95411c83899c9dc63e6fb65542f769568ecfa5"
"sha256:1676b0a292dd3c99e49305a16d7a9f42a4ab60ec522eac0d3dd20cdf362ac010",
"sha256:16f221035e8bd19b9dc9a57159e38d2dd060b48e93e1d843c49cb370b0f415fd",
"sha256:43909c8bb289c382170e0282158a38cf306a8ad2ff6dfadc447e90f9961bef43",
"sha256:4e465afc3b96dbc80cf4a5273e5e2b1e3451286361b4af70ce1adb2984d392f9",
"sha256:55b745fca0a5ab738647d0e4db099bd0a23279c32b31a783ad2ccea729e632df",
"sha256:5d050e1e4bc9ddb8656d7b4f414557720ddcca23a5b88dd7cff65e847864c400",
"sha256:637d827248f447e63585ca3f4a7d2dfaa882e094df6cfa177cc9cf9cd6cdf6d2",
"sha256:6690080810f77485667bfbff4f69d717c3be25e5b11bb2073e76bb3f578d99b4",
"sha256:66fbc6fed94a13b9801fb70b96ff30605ab0a123e775a5e7a26938b717c5d71a",
"sha256:67d44acb72c31a97a3d5d33d103ab06d8ac20770e1c5ad81bdb3f0c086a56cf6",
"sha256:6ca2b85a5997dabc38301a22ee43c82adcb53ff660b89ee88dded6b33687e1d8",
"sha256:6e51534e78d14b4a009a062641f465cfaba4fdcb046c3ac0b1f61dd97c861b1b",
"sha256:70eb5808127284c4e5c9e836208e09d685a7978b6a216db85960b1a112eeace8",
"sha256:830b044f4e64a76ba71448fce6e604c0fc47a0e54d8f6467be23749ac2cbd2fb",
"sha256:8b7bb4b9280da3b2856cb1fc425932f46fba609819ee1c62256f61799e6a51d2",
"sha256:a9c65473ebc342715cb2d7926ff1e202c26376c0dcaaee85a1fd4b8d8c1d3b2f",
"sha256:c1c09247ccea742525bdb5f4b5ceeacb34f95731647fe55774aa36557dbb5fa4",
"sha256:c5bf0e132acf7557fc9bb8ded8b53bbbbea8892f3c9a1738205878ca9434206a",
"sha256:db250fd3e90117e0312b611574cd1b3f78bec046783195075cbd7ba9c3d73f16",
"sha256:e515c9a93aebe27166ec9593411c58494fa98e5fcc219e47260d9ab8a1cc7f9f",
"sha256:e55185e51b18d788e49fe8305fd73ef4470596b33fc2c1ceb304566b99c71a69",
"sha256:ea9cff01e75a956dbee133fa8e5b68f2f92175233de2f88de3a682dd94deda65",
"sha256:f1452578d0516283c87608a5a5548b0cdde15b99650efdfd85182102ef7a7c17",
"sha256:f39a995e47cb8649673cfa0579fbdd1cdd33ea497d1728a6cb194d6252268e48"
],
"index": "pypi",
"version": "==1.18.1"
"version": "==1.20.3"
},
"pillow": {
"hashes": [
@ -105,6 +125,14 @@
],
"index": "pypi",
"version": "==8.2.0"
},
"smmap": {
"hashes": [
"sha256:7e65386bd122d45405ddf795637b7f7d2b532e7e401d46bbe3fb49b9986d5182",
"sha256:a9a7479e4c572e2e775c404dcd3080c8dc49f39918c2cf74913d30c4c478e3c2"
],
"markers": "python_version >= '3.5'",
"version": "==4.0.0"
}
},
"develop": {
@ -115,55 +143,58 @@
],
"version": "==1.4.4"
},
"attrs": {
"hashes": [
"sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1",
"sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb"
],
"version": "==21.2.0"
},
"black": {
"hashes": [
"sha256:1b30e59be925fafc1ee4565e5e08abef6b03fe455102883820fe5ee2e4734e0b",
"sha256:c2edb73a08e9e0e6f65a0e6af18b059b8b1cdd5bef997d7a0b181df93dc81539"
"sha256:dc132348a88d103016726fe360cb9ede02cecf99b76e3660ce6c596be132ce04",
"sha256:dfb8c5a069012b2ab1e972e7b908f5fb42b6bbabcba0a788b86dc05067c7d9c7"
],
"index": "pypi",
"version": "==19.10b0"
"version": "==21.6b0"
},
"click": {
"hashes": [
"sha256:8c04c11192119b1ef78ea049e0a6f0463e4c48ef00a30160c704337586f3ad7a",
"sha256:fba402a4a47334742d782209a7c79bc448911afe1149d07bdabdf480b3e2f4b6"
],
"markers": "python_version >= '3.6'",
"version": "==8.0.1"
},
"isort": {
"hashes": [
"sha256:54da7e92468955c4fceacd0c86bd0ec997b0e1ee80d97f67c35a78b719dccab1",
"sha256:6e811fcb295968434526407adb8796944f1988c5b65e8139058f2014cbe100fd"
"sha256:0a943902919f65c5684ac4e0154b1ad4fac6dcaa5d9f3426b732f1c8b5419be6",
"sha256:2bb1680aad211e3c9944dbce1d4ba09a989f04e238296c87fe2139faa26d655d"
],
"index": "pypi",
"version": "==4.3.21"
"version": "==5.8.0"
},
"mypy": {
"hashes": [
"sha256:0a9a45157e532da06fe56adcfef8a74629566b607fa2c1ac0122d1ff995c748a",
"sha256:2c35cae79ceb20d47facfad51f952df16c2ae9f45db6cb38405a3da1cf8fc0a7",
"sha256:4b9365ade157794cef9685791032521233729cb00ce76b0ddc78749abea463d2",
"sha256:53ea810ae3f83f9c9b452582261ea859828a9ed666f2e1ca840300b69322c474",
"sha256:634aef60b4ff0f650d3e59d4374626ca6153fcaff96ec075b215b568e6ee3cb0",
"sha256:7e396ce53cacd5596ff6d191b47ab0ea18f8e0ec04e15d69728d530e86d4c217",
"sha256:7eadc91af8270455e0d73565b8964da1642fe226665dd5c9560067cd64d56749",
"sha256:7f672d02fffcbace4db2b05369142e0506cdcde20cea0e07c7c2171c4fd11dd6",
"sha256:85baab8d74ec601e86134afe2bcccd87820f79d2f8d5798c889507d1088287bf",
"sha256:87c556fb85d709dacd4b4cb6167eecc5bbb4f0a9864b69136a0d4640fdc76a36",
"sha256:a6bd44efee4dc8c3324c13785a9dc3519b3ee3a92cada42d2b57762b7053b49b",
"sha256:c6d27bd20c3ba60d5b02f20bd28e20091d6286a699174dfad515636cb09b5a72",
"sha256:e2bb577d10d09a2d8822a042a23b8d62bc3b269667c9eb8e60a6edfa000211b1",
"sha256:f97a605d7c8bc2c6d1172c2f0d5a65b24142e11a58de689046e62c2d632ca8c1"
"sha256:0190fb77e93ce971954c9e54ea61de2802065174e5e990c9d4c1d0f54fbeeca2",
"sha256:0756529da2dd4d53d26096b7969ce0a47997123261a5432b48cc6848a2cb0bd4",
"sha256:2f9fedc1f186697fda191e634ac1d02f03d4c260212ccb018fabbb6d4b03eee8",
"sha256:353aac2ce41ddeaf7599f1c73fed2b75750bef3b44b6ad12985a991bc002a0da",
"sha256:3f12705eabdd274b98f676e3e5a89f247ea86dc1af48a2d5a2b080abac4e1243",
"sha256:4efc67b9b3e2fddbe395700f91d5b8deb5980bfaaccb77b306310bd0b9e002eb",
"sha256:517e7528d1be7e187a5db7f0a3e479747307c1b897d9706b1c662014faba3116",
"sha256:68a098c104ae2b75e946b107ef69dd8398d54cb52ad57580dfb9fc78f7f997f0",
"sha256:746e0b0101b8efec34902810047f26a8c80e1efbb4fc554956d848c05ef85d76",
"sha256:8be7bbd091886bde9fcafed8dd089a766fa76eb223135fe5c9e9798f78023a20",
"sha256:9236c21194fde5df1b4d8ebc2ef2c1f2a5dc7f18bcbea54274937cae2e20a01c",
"sha256:9ef5355eaaf7a23ab157c21a44c614365238a7bdb3552ec3b80c393697d974e1",
"sha256:9f1d74eeb3f58c7bd3f3f92b8f63cb1678466a55e2c4612bf36909105d0724ab",
"sha256:a26d0e53e90815c765f91966442775cf03b8a7514a4e960de7b5320208b07269",
"sha256:ae94c31bb556ddb2310e4f913b706696ccbd43c62d3331cd3511caef466871d2",
"sha256:b5ba1f0d5f9087e03bf5958c28d421a03a4c1ad260bf81556195dffeccd979c4",
"sha256:b5dfcd22c6bab08dfeded8d5b44bdcb68c6f1ab261861e35c470b89074f78a70",
"sha256:cd01c599cf9f897b6b6c6b5d8b182557fb7d99326bcdf5d449a0fbbb4ccee4b9",
"sha256:e89880168c67cf4fde4506b80ee42f1537ad66ad366c101d388b3fd7d7ce2afd",
"sha256:ebe2bc9cb638475f5d39068d2dbe8ae1d605bb8d8d3ff281c695df1670ab3987",
"sha256:f89bfda7f0f66b789792ab64ce0978e4a991a0e4dd6197349d0767b0f1095b21",
"sha256:fc4d63da57ef0e8cd4ab45131f3fe5c286ce7dd7f032650d0fbc239c6190e167",
"sha256:fd634bc17b1e2d6ce716f0e43446d0d61cdadb1efcad5c56ca211c22b246ebc8"
],
"index": "pypi",
"version": "==0.761"
"version": "==0.902"
},
"mypy-extensions": {
"hashes": [
@ -230,43 +261,9 @@
"sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b",
"sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"
],
"markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==0.10.2"
},
"typed-ast": {
"hashes": [
"sha256:01ae5f73431d21eead5015997ab41afa53aa1fbe252f9da060be5dad2c730ace",
"sha256:067a74454df670dcaa4e59349a2e5c81e567d8d65458d480a5b3dfecec08c5ff",
"sha256:0fb71b8c643187d7492c1f8352f2c15b4c4af3f6338f21681d3681b3dc31a266",
"sha256:1b3ead4a96c9101bef08f9f7d1217c096f31667617b58de957f690c92378b528",
"sha256:2068531575a125b87a41802130fa7e29f26c09a2833fea68d9a40cf33902eba6",
"sha256:209596a4ec71d990d71d5e0d312ac935d86930e6eecff6ccc7007fe54d703808",
"sha256:2c726c276d09fc5c414693a2de063f521052d9ea7c240ce553316f70656c84d4",
"sha256:398e44cd480f4d2b7ee8d98385ca104e35c81525dd98c519acff1b79bdaac363",
"sha256:52b1eb8c83f178ab787f3a4283f68258525f8d70f778a2f6dd54d3b5e5fb4341",
"sha256:5feca99c17af94057417d744607b82dd0a664fd5e4ca98061480fd8b14b18d04",
"sha256:7538e495704e2ccda9b234b82423a4038f324f3a10c43bc088a1636180f11a41",
"sha256:760ad187b1041a154f0e4d0f6aae3e40fdb51d6de16e5c99aedadd9246450e9e",
"sha256:777a26c84bea6cd934422ac2e3b78863a37017618b6e5c08f92ef69853e765d3",
"sha256:95431a26309a21874005845c21118c83991c63ea800dd44843e42a916aec5899",
"sha256:9ad2c92ec681e02baf81fdfa056fe0d818645efa9af1f1cd5fd6f1bd2bdfd805",
"sha256:9c6d1a54552b5330bc657b7ef0eae25d00ba7ffe85d9ea8ae6540d2197a3788c",
"sha256:aee0c1256be6c07bd3e1263ff920c325b59849dc95392a05f258bb9b259cf39c",
"sha256:af3d4a73793725138d6b334d9d247ce7e5f084d96284ed23f22ee626a7b88e39",
"sha256:b36b4f3920103a25e1d5d024d155c504080959582b928e91cb608a65c3a49e1a",
"sha256:b9574c6f03f685070d859e75c7f9eeca02d6933273b5e69572e5ff9d5e3931c3",
"sha256:bff6ad71c81b3bba8fa35f0f1921fb24ff4476235a6e94a26ada2e54370e6da7",
"sha256:c190f0899e9f9f8b6b7863debfb739abcb21a5c054f911ca3596d12b8a4c4c7f",
"sha256:c907f561b1e83e93fad565bac5ba9c22d96a54e7ea0267c708bffe863cbe4075",
"sha256:cae53c389825d3b46fb37538441f75d6aecc4174f615d048321b716df2757fb0",
"sha256:dd4a21253f42b8d2b48410cb31fe501d32f8b9fbeb1f55063ad102fe9c425e40",
"sha256:dde816ca9dac1d9c01dd504ea5967821606f02e510438120091b84e852367428",
"sha256:f2362f3cb0f3172c42938946dbc5b7843c2a28aec307c49100c8b38764eb6927",
"sha256:f328adcfebed9f11301eaedfa48e15bdece9b519fb27e6a8c01aa52a17ec31b3",
"sha256:f8afcf15cc511ada719a88e013cec87c11aff7b91f019295eb4530f96fe5ef2f",
"sha256:fb1bbeac803adea29cedd70781399c99138358c26d05fcbd23c13016b7f5ec65"
],
"version": "==1.4.3"
},
"typing-extensions": {
"hashes": [
"sha256:0ac0f89795dd19de6b97debb0c6af1c70987fd80a2d62d1958f7e56fcc31b497",

View File

@ -172,13 +172,26 @@ have that, just clone this repo, open `Cozette/Cozette.sfd` in FontForge,
and go to *File → Generate Fonts...*.
To run the build scripts I use to prepare releases, first install Python 3.8
and [pipenv]. Then, install the dependencies and run `build.py fonts`:
and [pipenv]. For generating the images, you will also need `xorg-mkfontscale`
and `xterm`.
Then, install the dependencies and run `build.py fonts`:
```console
$ pipenv install
$ pipenv run python3.8 build.py fonts
```
Then install the generated fonts, and run
```console
$ pipenv run python3.8 build.py images
```
Running
```console
$ pipenv run python3.8 build.py changelog
```
will output the changelog between your local version and the last tag.
# License
Cozette is licensed [MIT] 💜

View File

@ -22,6 +22,7 @@ from cozette_builder.scanner import (
print_codepoints_for_changelog,
find_missing_codepoints,
)
from cozette_builder.changeloggen import get_changelog
REPO_ROOT = Path(__file__).resolve().parent
BUILD_DIR = REPO_ROOT / "build"
@ -132,6 +133,7 @@ if __name__ == "__main__":
parser = argparse.ArgumentParser()
subparsers = parser.add_subparsers(dest="action")
images = subparsers.add_parser("images")
changelog = subparsers.add_parser("changelog")
fonts = subparsers.add_parser("fonts")
scan = subparsers.add_parser("scan")
# noinspection PyTypeChecker
@ -176,5 +178,7 @@ if __name__ == "__main__":
print(crayons.blue("Fixing TTF..."))
fix_ttf(Path("cozette-tmp.ttf"))
print(crayons.green("Done!", bold=True))
elif args.action == "changelog":
get_changelog()
else:
parser.print_usage()

View File

@ -0,0 +1,68 @@
from git import Repo
import re
from pathlib import Path
from unicodedata import name
REPO_ROOT = Path(__file__).parent.parent
COZETTE_SFD = REPO_ROOT / "Cozette" / "Cozette.sfd"
repo = Repo(REPO_ROOT)
last_ver = repo.tags[-1]
last_cozette_sfd: str = (
last_ver
.commit
.tree["Cozette/Cozette.sfd"]
.data_stream
.read().decode('utf-8')
)
char_regex = re.compile(r'BDFChar: (-?\d+) (-?\d+) (-?\d+) (-?\d+) (-?\d+) (-?\d+) (-?\d+)')
def get_codepoints(cozette_sfd: str):
codepoints = {}
current_codepoint = None
for line in cozette_sfd.splitlines():
if current_codepoint:
codepoints[current_codepoint] = line
current_codepoint = None
elif match := char_regex.match(line):
current_codepoint = int(match.group(2))
return codepoints
def print_codepoint(codepoint):
try:
chrname = " " + name(chr(codepoint))
except ValueError:
chrname = ""
print(
f"- {chr(codepoint)} (U+{codepoint:04X}{chrname})"
)
def get_changelog():
previous_codepoints = get_codepoints(last_cozette_sfd)
with COZETTE_SFD.open() as f:
current_codepoints = get_codepoints(f.read())
added = set(current_codepoints) - set(previous_codepoints)
removed = set(previous_codepoints) - set(current_codepoints)
changed = set()
for k, v in current_codepoints.items():
if k in previous_codepoints and previous_codepoints[k] != v:
changed.add(k)
if added:
print("### Added\n")
for codepoint in sorted(added):
print_codepoint(codepoint)
print("")
if changed:
print("### Changed\n")
for codepoint in sorted(changed):
print_codepoint(codepoint)
print("")
if removed:
print("### Removed\n")
for codepoint in sorted(removed):
print_codepoint(codepoint)
print("")

View File

@ -6,8 +6,6 @@ from typing import Dict, NamedTuple, Optional, Tuple, List
from unicodedata import east_asian_width as charwidth
from PIL import Image, ImageOps # type: ignore
from cozette_builder.bdffont import BdfFont
Color = Tuple[int, int, int]
@ -90,7 +88,7 @@ def save_sample(
fp = f.name
cmd = quote(
f"tput civis &&"
f"cat {fp} && sleep 0 && "
f"cat {fp} && sleep 0.1 && "
f"import -window $WINDOWID {output_path}"
)
subprocess.run(
@ -192,8 +190,8 @@ def stitch_charmap(files: List[Path], target: Path):
for im in images:
new_im.paste(im, (0, y))
y += im.height
for p in files:
p.unlink()
# for p in files:
# p.unlink()
new_im.save(target)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 7.0 KiB