Hanazono Lite
輕量版

HanazonoLite Badge

125,000+ codepoints covered, spanning 298/308 printable blocks, incl. Ext A to G. That's 86% of the Unicode 13.0 space. 156,000+ unique CIDs including locale-specific glyphs accessible via the OpenType locl GSUB feature.

A reimplementation of the glyphwiki-afdko pipeline using stable versions of Python and node.js to leverage multiprocessing and iterate faster.

Autogenerated using CI/CD on GitHub Actions more than once every week.

Generating a single typeface-locale combination (e.g. Mincho KR CJK) takes 20 mins (SVG outline generation) + 5 mins (cmap generation and makeotf) on a single 8th gen i3 thread. Under 7 mins total wall clock time can be expected with 32 GB RAM and all 4 threads.

The demo below uses CJK TC.

Locale
Typeface
Include glyphs from other locales?
Format
1/1/1970, 12:00:00 AM
Name
Size
Typeface
Size 20pt
Direction
Weight
zh-Hant-HK山川異域、風雨同天。豈曰無衣、與子同袍。王于興師、脩我戈矛、與子同仇。
ja山川異域、風雨同天。豈曰無衣、與子同袍。王于興師、脩我戈矛、與子同仇。
ko山川異域、風雨同天。豈曰無衣、與子同袍。王于興師、脩我戈矛、與子同仇。
zh-Hans山川異域、風雨同天。豈曰無衣、與子同袍。王于興師、脩我戈矛、與子同仇。
zh-Hant山川異域、風雨同天。豈曰無衣、與子同袍。王于興師、脩我戈矛、與子同仇。
vi山川異域、風雨同天。豈曰無衣、與子同袍。王于興師、脩我戈矛、與子同仇。

There are incorrect glyphs in my locale!

N.B. I am a newcomer to GlyphWiki myself, so the observations below may not be entirely correct, and there may be exceptions to the rule given the nature of collaborative editing. I've created an issue here for further discussion and observations on locale-specific needs.

In GlyphWiki, default names (e.g. u7940) are usually aliased to the J-source variant or even the -jv variant if one exists; thus u7940 is aliased to u7940-j, and u6eb8 is aliased to u6eb8-jv as of the time of writing, otherwise it is aliased to the primary locale from which it originates.

For instance, , being the Simplified Chinese-exclusive variant of , necessarily only has a G-source glyph. u7eb7 is thus an alias of u7eb7-g. Note the absence of the brief horizontal stroke in compared to , as well as the lack of discontinuity in vs , which are characteristics of modern G-source 宋体, which in turn takes on many features of regular script.

𫙹(ブリザード) is a recently-coined, 和製漢字 with no G-source, even though in theory a G-styled glyph with instead of could be created (note the boxy protrusion to the bottom left, once again a 新字形 artifact).

, the 新字体 of , is a variant attested to in the 康熙字典, hence, naturally it has a G-variant too, .

Yet still, there exist Korean-only 國字 which made their way into the PRC's GB standards, e.g. with the first stroke in rendered as a instead.

In the absence of a locale-specific glyph, the default name is used. When generating the SC font, the (sole) J-variant is used for 𫙹, which makes sense to me since it almost always appears in a Japanese context. The same would apply to non-SC fonts using .

Unfortunately, currently, locale-specific glyphs for the URO are far from complete. Using as an example; as of April 9, 2021 only its G and J-source glyphs are defined. Therefore, in the TC font, u8ade uses the u8ade-j glyph by default. When invoking the locl feature using the TC font, all locales except zh-Hans fall back to the u8ade-j glyph. zh-Hans works properly because there would be a substitution rule which replaces whatever CID u8ade points to with u8ade-g unconditionally, which exists.

It is unclear whether, say, u8ade && locl=vi (nonexistent) -> u8ade (nonexistent) -> u8ade-j is a desirable fallback strategy. For one, various Nôm-targeted fonts are based on Song-style glyphs, not least the eponymous (nôm)(na)(tống) Light font, which is a V-source Unicode code chart reference font, as well as the Han Nom fonts, used in the TừĐiển𡨸Chữ Nôm Trích Dẫn, hence fallback to any of G, T, or even H sources could be desirable.

Simply leaving those glyphs unpopulated, thus allowing the user to choose a suitable font stack, is another possibility, although the locl feature for that codepoint would no longer work because there is no glyph to substitute for anymore!

Charts showing which locale-specific glyphs are available in the URO and whether they have been added to GlyphWiki are available here.

Gothic font is missing lots of strokes!

Yes, that's probably why kage.kShotai = kage.kGothic isn't documented yet. I'm keeping track of the gothic related issues I've found here.

Is there any reasoning behind the A, B, C, and D splits?

In the CJK fonts, as many of the East Asian-related Unicode blocks are added to the A file as possible to pass fc-validate so that there are less catches with fontconfig when trying to prioritize it over system fonts. Simply avoid installing the D split if you don't want to use non East Asian glyphs.

$ fc-validate -l zh_cn HanaMinLiteCJKATC.otf
HanaMinLiteCJKATC.otf:0 Satisfy the coverage for zh-cn language
$ fc-validate -l zh_tw HanaMinLiteCJKATC.otf
HanaMinLiteCJKATC.otf:0 Satisfy the coverage for zh-tw language
$ fc-validate -l zh_hk HanaMinLiteCJKATC.otf
HanaMinLiteCJKATC.otf:0 Missing 121 glyph(s) to satisfy the coverage for zh-hk language
$ fc-validate -l ja_jp HanaMinLiteCJKATC.otf
HanaMinLiteCJKATC.otf:0 Satisfy the coverage for ja language
$ fc-validate -l ko_kr HanaMinLiteCJKATC.otf
HanaMinLiteCJKATC.otf:0 Satisfy the coverage for ko language