Repository navigation
Releases: Kushim-Jiang/mongolian
Release list
v0.15.3
What’s Changed
The latest revision of the UTN is UTN #57, Encoding and Shaping of the Mongolian Script.
The documentation is maintained at https://mongolian.kushim.workers.dev/, and its major revisions are archived and published as revisions of that Note.
- Repository
- Publish the site as an archived revision of the UTN when
UTN_REVISIONis set: the links of the prose, the linksMongrenders and the written-units font the site imports now obey the base path/notes/tn57/utn57-mong-<revision>/, which nothing obeyed before, so an archived revision was a site of links that leave it;pdf.pytakes that path off a URL before reading it as a file, andpdf.ymlpasses a revision through to the build and to the script - Make the colours the site declares itself follow the theme: the theme provider is Starlight’s own with
lightfor a reader who has never chosen a theme, which is the value the picker shows them, and the colours the stylesheet and the tables declare are custom properties with a value for each theme, the light values being the ones they had - Take the dead styles and the doubled rules out of the site: the sidebar toggle, the
.toc-under-pagerules, the print rules for asides no page writes, andgetWritten(), which nothing called; the four tables each repeated the sametd, thalignment, which the global rule now carries, and the helper-glyph colours, written five times under three names, are declared once as custom properties - Let the punctuation table take the alignment the tables share, dropping the two rules of its own that said what the global rule already says
- Publish the site as an archived revision of the UTN when
- The model and the fonts
- Important: Write the shape a written form takes before the mark that ends a syllable. The data gives
N.finaandHx.finaa drawing for the end of a syllable a mark separates — apre_mvscode — and a chachlag onset writes it, the letter standing before the mark that precedes a chachlag a or e; the source fonts carry that drawing under themvssuffix and no code read it at all. It is a new Phase IIb.2, which the phases after it move up one number for, and it is replaced in Phase IIb rather than by the condition that selects it, because Phase IIb runs after Phase III has consumed the FVS, so the substitution cannot take the form out of the class the FVS is shaped against and leave the FVS unshaped; it is asked for before the narrow MVS alone, since a wide MVS is the separator Phase IIb.3 splits in two - Important: Read the drawings of the per-writing-system fonts from
unified.ufoagain, since a font of a writing system is a copy of the glyphs that writing system writes and the copies had fallen behind:manchu.ufodrew_Hx2.finawith the drawing of_Hx.fina, and hundreds of glyphs across the three fonts no longer matched the source, anchors with them. A glyph a font has andunified.ufodoes not is a drawing of that font alone and stays where it is, the glyph order, the font info and the two plists are the font’s own, and the Manchu_Zs.fina, which no lookup in the OTL ever reaches, is deleted; the templates are regenerated after them, the.glyphsfiles alone, since a.feafile carries the shaping of the written forms and not the drawings - Draw the marks and the digits in the fonts that write them: Hudum writes the digits and the punctuation its column of the documentation gives it, Manchu its own comma and full stop, and the drawings are the ones
unified.ufoalready had, copied as they are, so that a written form the documentation shows is the drawing the template carries; the vertical forms come with the marks, thirteen marks of Hudum having one - Write the vertical forms in the templates: a template takes the choice wherever its source font draws the form and writes the
vertfeature itself, only where there is a form to substitute, and both files of a template are written with\nwhatever the platform, so that a template generated on one machine is the template generated on another;ccmpgoes with them, since the substitution of NNBSP for MVS it held was retired by Phase Ia - Give the data the characters that do not join: the punctuation of
writtenUnits.tsnow names the writing systems that write each mark, which a writing system and its Ali Gali extension share, the ten Mongolian digits get an entry of their own, andexport.tswrites the two asnonJoining.json, a set of code points for each writing system, checking that every mark is given a writing system the model has - Drop the rules that no shaping could reach and build the long vowel sign once: the nbsp substitution of Phase III.7 could only write the glyph it read, the marker lookup
III.ig.preprocessing.Hmarked a vowel masculine forisol, where nothing reads the mark, the letters that precede an FVS were collected a second time for every locale, andlvsDescriptor()builds the descriptor of the Todo long vowel sign in one place instead of three - Draw the nnbsp guard around the nnbsp lookup only, so that
III.controls.postprocessing— the reset of an ignored nirugu and of an ignored or valid FVS at the end of shaping — is written for every font; the docstrings ofiii2candiii2ehad the letters the wrong way round - Index the aliases instead of scanning them for every lookup:
getCharNameByAliaswalkeddata.aliasesfrom the top on every call and the composition asks it hundreds of thousands of times — a profile of the unified test font found 866,735 calls burning 26.6 s of the 42 s the build took — so the index is built once, in the order the data is written, and an alias written as a string still answers in every namespace - Remove the code the composition cannot reach:
self.localeandself.writingSystems, themarkedargumentgetDefaultwas never given, theTODObranches ofiib1, a loop over a one-item list,[A, B][index]for what a tuple carries, and0x1843where the data spellsu1843 - Set
languageSystems["DFLT"]in the constructor oftemplates/update.py, where it reaches the composition, rather than aftercompose(), where it cannot
- Important: Write the shape a written form takes before the mark that ends a syllable. The data gives
- Packaging and tests
- Write the test UFOs the one way, by
ufoLib2, which is the libraryufo2ftbuilds them with, so that a glif, a plist and the font info agree from one font to the next; nothing but the layout of the files moves, the glyphs, their code points and their order, the anchors, the notes, the colours, the categories and the font info being read before and after and compared - Check the fonts draw what their writing systems write: a character that is not a letter is drawn rather than composed, so nothing in the composition would notice one the data gives a writing system and its font does not draw; the test reads the two off each other, and checks that a mark drawn with a vertical form has one wherever the mark is drawn
- Reuse a built test font while its sources are unchanged: each build is stamped with a digest of its sources — the library, the source font, the composing code and the writing systems it targets — so a run after a change to the composer can no longer silently shape the font built before it, and a repeat run pays for the digest instead of the build, the unified font coming back in 1.7 s of the 66 s the suite took;
MONGFONTBUILDER_REBUILDasks for the build again - Let every test shape a case the way the font it shapes is written for:
assertWrittenUnitstakes the language, so the suites of the single fonts no longer ask the same question with two meanings; the failure report asks for its font through the same stamp the suites build with instead of answering with whatever it finds intemp/;MARK_GLYPHSlives in the composer alone, since a fourth mark would have left the builder anchoring three; andUTNGlyphNameis astrsubclass again, its fields having been read by nothing while they made a name unhashable - Clean the test suite of what no run can reach:
UTNGlyphName.codePoint(), the unused arguments oflvsFormMembersandmarkGeneratedGlyphs, the two pathstest_unifiedasserted, and the export of the template font intest_templates, which was not checked at all, so a failed export on macOS turned the suite of the shipped template into an empty one;sourceStampno longer hashes the bytecode Python writes beside the sources, which a fresh checkout could not reproduce and which made every font build twice - Give the tests the assertions and the example they were missing:
test_feacomposed a feature file for a locale and asserted nothing about it, theUTNGlyphNamedocstring showed a glyph name the class cannot be given, and the threetempDir.mkdircalls that could never fire are gone
- Write the test UFOs the one way, by
- Documentation and print
- Important: Stop the pages from saying which revision they are:
docs/index.mdxis the one place that tells the reader what they are looking at, and it tells them fromUTN_REVISION— an archived revision says it is one, and the current documentation says that its revisions are published as revisions of the Note — so the other pages now say what the analysis is and leave the standing to the one place that knows, and the cover of the merged PDF is given the same treatment - Important: Describe the shape a written unit takes before the mark that ends a syllable where the phases are listed: the architecture chapter gains the step in its table of phases, says why it is asked of the chachlag onset and why it cannot be part of the condition that selects the letter, and the MVS it speaks of points at that step, its letters written as italics, as the rest of the chapter writes them
- Render the punctuation table from the data: the table carried the membership of the data as check marks of its own, and the data carries it now, so the component reads the marks in the order the data keeps them and names each from the Unicode data, the way the le...
- Important: Stop the pages from saying which revision they are:
v0.15.1
What’s Changed
The latest revision of the UTN is UTN #57, Representing Mongolian in Unicode.
The working draft of the UTN is maintained at https://mongolian.kushim.workers.dev/.
- Repository
- Move the documentation site’s own components out of a
lib/directory at the repository root and intosrc/components/, and moveoutsideLetters.tstodata/with the other specification data, since a rootlib/reads as the library the repository publishes and the only library published here is the Python one undermongfontbuilder/; follow the move through the imports of the pages and of the components themselves - Give
data/,mongfontbuilder/andtemplates/their own READMEs, describe the documentation site in the main README, and drop the working-draft wording from the READMEs and the PDF subtitle - Remove the site’s banner and footer, since the publication is presented in a page of the Unicode site that carries the footer it is read under
- Bump
mongfontbuilderto 0.15.1 — the range carries 0.14.0 and 0.15.0 as well — bring the copyright year to 2026, and record the repository’s new namemongolianinpackage-lock.json, which the rename had left behind, so no install rewrites that line - Publish the site as an archived revision of the UTN when
UTN_REVISIONis set: the base becomes/notes/tn57/utn57-mong-<revision>/, and the index carries the archive note pointing to https://mongolian.kushim.workers.dev/ instead of the working-draft note
- Move the documentation site’s own components out of a
- The model and the fonts
- Important: Map U+3000 IDEOGRAPHIC SPACE, the code point the punctuation around it missed. The font maps U+3001 IDEOGRAPHIC COMMA through U+300F RIGHT WHITE CORNER BRACKET but not the space that belongs to the same run, and a layout that finds no glyph for it falls back to another font, so the spacing is that font’s and not this one’s; draw it as an empty glyph of the full-width advance the marks are drawn with and leave it to the vertical metrics (Refs notofonts/mongolian#44)
- Important: Key the letters that lie outside every writing system by character name, joining position and FVS, write a position that borrows another as a reference, and move
unrecommendedonto the position it is about, exportingoutsideLetters.jsonbeside the files the library reads, so the font builder reads the written units of each joining position rather than hard-coding them; what the test suite compares is unchanged. Follow the change through the file list indocs/toolchain.mdx - Important: Name every writing system by its locale ID once, in the locale data, so the test fonts, the suite files and the site read one mapping instead of keeping a copy each; name the suite files for the writing systems they hold and read them as package data; and drop
otf.py, since the compile step isufo2ft.OTFCompilerused directly. Type the CLI’s--localesvalues and the writing systemtracereads asLocaleIDbefore they reach the library, which expects that type - Drop the eighteen of the thirty-five glyph-name mappings that no case reaches, keeping the names in the fonts and restoring a mapping when a case comes to shape it, and reintroduce the
uXXXXnames the existing test fonts are written with
- Packaging and tests
- Important: Require Python 3.11, since 3.10 reached end of life and fontTools dropped support for it
- Simplify the Python dependencies and
pyproject.toml: dropPyYAMLandskia-pathops, raiseunicodedata2to 18, and remove the ruff lint selection, the pyright configuration and the pytesttestpathsthe workspace no longer needs - Write the test fonts with the XML declaration fontTools writes, so the sources no longer quote it with double quotes and the compile step no longer puts the declaration back after writing a composed font; 1716 files change their declaration and no line that means anything
- Move the reference files from
tests/data/toreferences/, and organize the suites under the package’s owntestSuites/, renamed fromdata/suites, so the suites are read as package data and the helpers that read them are sorted apart from the package - Opt in
GdefFeatureWriterin the tests, since it writes GDEF FEA code frompublic.openTypeCategories; remove the CLI’s ability to compile to OTF, which only the tests used; simplify how the tests compile and import, dropping thesys.pathmanipulation each script repeated; and delete the unused Manchu Ali Gali test font, which nothing reads since the Manchu tests composemanchu.ufoand the unified font is composed fromunified.ufo - Update the JavaScript dependencies with
ncu -u -x typescript, move the dev dependencies back alongside the rest and drop thelodashoverride, and correct the@unicode/unicode-18.0.0import, which named version 17 and a path the package does not export
- Documentation and print
- Important: Rework the documentation end to end: the Introduction becomes a list of destinations, Architecture is condensed with its preamble folded into its sections, and Single-font implementation is tightened with its sections named for what they collect; Background and History become one appendix re-sorted into three sections, and Phonology becomes charts of letters with the map of which writing system records which language; the chapter on the Unicode Standard states what the two hold and where they differ, without recounting the Standard’s citations of this document. Every table is laid out as a real table, and the i18n collection Starlight reads is defined, so that the build runs quiet
- Important: Unify the citation tags into a single
Mongcomponent whose writing system is an attribute,<Mong MNG links=… />or<Mong TODx links=… />, deleting the per-writing-system wrappers and movingMong.svelteout oftags/ - Name an implementation of the model, not just the model: the document now writes down Mongolian Baiti, which Windows and Office supply and whose specification is in the Microsoft typography library, and Noto Sans Mongolian, whose repository carries the sources, the composed layout and the FontBakery runs, since the fonts people have to write with are the other reading of the model
- Reorganize the chapters and the appendices: the Introduction’s Structure section moves into Architecture, the phoneme inventory into a new Phonology appendix, and the Toolchain becomes a section of the Introduction with no page of its own; align the single-font tables with the per-writing-system tables
- Point every citation at an anchor that exists, accepting
·and–for the MVS and the NNBSP, pointing the written unit D at the Hudum chapter it is used in, and naming only the units each writing system actually uses - Point the references at copies that can be read: every path of rule.xueruhai.com and rule.xueruhai.cn answers 502 and the Internet Archive holds no capture of either host, so cite the Mongolian, Manchu and Todo rule pages of the earlier
rule.mongoltoli.cnas the archive holds them, state the Sibe version in plain text where no capture exists, and name the EAC revision of 1.0.2 of 17 June 2018, which a public collection holds, in place of the offline 1.0.5 - Reference the punctuation chapter from each writing system’s page, and note that the Sibe form of the quotation marks is requested with VS3 (U+FE02); carry the suite names, the writing-system names and the Menksoft reference file name through the documents
- Build the documentation PDF only when the workflow is dispatched by hand, not on every push to
main, and keep its cross-page links resolving: they used/introduction/#…, which no longer resolves now that the Introduction is the index, so the merge script rewrites/and/#anchorto the index and is kept as a checked-in.github/workflows/pdf.pythat the workflow runs
Full Changelog: v0.13.0...v0.15.1
v0.13.0
What’s Changed
The latest revision of the UTN is UTN #57, Representing Mongolian in Unicode.
The working draft of the UTN is maintained at https://mongolian.kushim.workers.dev/.
- Repository
- Important: Make the repository a uv workspace and move the package into a project of its own.
mongfontbuilder/now holds the library, its CLI, its tests and the readme the package publishes, while one environment and one lockfile serve the whole repository, souv sync,uv run pytestand the CLI are all run from the repository root; thelib/module root the old layout needed goes with it - Promote the documentation site to the repository root: the pages are in
docs/, the Svelte components inlib/, the styles and configuration insrc/, andsrcDir/publicDirare the defaults again - Put the test fonts in
mongfontbuilder/tests/fonts/, where the 2,128 glyph files no longer sit beside the tests that shape them, and split the font the unified suite composes out oftest_unified.pyintomongfontbuilder/tests/unified.py - Rename the project to the title of the UTN it is the working draft of, Encoding and Shaping of the Mongolian Script, and reposition
mongfontbuilderas its library; the repository is now Kushim-Jiang/mongolian, and the package metadata, the links and the site config name the new path
- Important: Make the repository a uv workspace and move the package into a project of its own.
- Shaping
- Important: Anchor the marks to every written form of the font. The lookup the marks are positioned in held only the written forms of Hudum and its Ali Gali extension, so baluda, tribaluda and dagalga written over anything else were flung past the written form they belong over rather than drawn on it; a base is now any glyph carrying an advance, which takes in the ligatures, the localized written forms and the dotted circle, and the lookup is written after the composition, which is when a built glyph knows its advance
- Draw the final form of the wa before a long vowel sign, and mark that variant of the final form as one a long vowel sign selects
- Compile through a helper that removes the overlaps of every glyph with a boolean operation, so a glyph built from written units whose outlines meet and cross is filled the same in every renderer
- Packaging and tests
- Important: Read the conformance suites from the package's own data directory rather than from the tests, so the project and the fonts built from it read the one copy of them, and drop the second copy beside the tests
- Point the publish workflow at
uv build --package mongfontbuilder --out-dir mongfontbuilder/distand publish from there, sinceuv buildwould otherwise write into thedist/the documentation site builds into - Quote the XML declaration of a written UFO with double quotes like the sources, so a composed font no longer differs from the source it was read from in a line that carries no meaning
- Draw the contours of the test fonts the same way round, since a clockwise contour and a counter-clockwise one are filled the same by the ink but are not interchangeable once overlaps are removed
- Documentation and print
- Important: Build the documentation PDF in CI instead of with
tools/make_pdf.pyand an npm script:pdf.ymlmerges the built pages in the order of thesidebararray and renders them with WeasyPrint as a downloadable artifact, so a run leaves nothing in the checkout - Set the print styling in the site's own stylesheet, where the paged view it describes belongs:
@pagestays outside@media print, and the contents carry dotted leaders and the page each entry lands on - Fix the publish and test workflows to read the Python version from the repository root and to sync the workspace there
- Document the repository layout with one drawing of the whole root, and describe the uv workspace, the environment and the project in the readmes and the toolchain chapter
- Important: Build the documentation PDF in CI instead of with
Full Changelog: v0.12.2...v0.13.0
v0.12.2
What's Changed
- Shaping
- Important: Phase Ia replaced every NNBSP with an MVS, so the glyph the source font draws for the character could never be written; the two are shaped alike without it, and what nothing shaped is written by Phase III.7, which is the phase that can tell them apart
- Apply the localized and optional treatments of Phase IIb where both designs are drawn, so the Sibe and Manchu fonts build again
- Build the written form of a long vowel sign and its ligature, and draw the glyphs of a spec after the glyphs they are built from
- Docs and print
- Important: Export the documentation as a PDF with
tools/make_pdf.py, in an environment of its own: WeasyPrint and lxml are not project dependencies, and the tool needs a 64-bit Python on Windows - Print the hero of a page, and read the tagline and the action links with the address each one goes to, since a printed link is nothing to click
- Find the Pango/GLib runtime along
PATH, so WeasyPrint loads on a machine whose GTK ships with another program - Style the page hero and the note asides for print, and document the localized and optional treatments of Phase IIb in
architecture.mdx
- Important: Export the documentation as a PDF with
Full Changelog: v0.12.1...v0.12.2
v0.12.1
What's Changed
- Unified font
- Important: Compose several writing systems into one font — Hudum, Hudum Ali Gali, Todo, Todo Ali Gali, Sibe, Manchu and Manchu Ali Gali share a single source, so a text that mixes them shapes from one font
- Important: Add
unified.ufo, generated by a newtools/make_unified_ufo.py, and test it against the EAC and GB suites intest_unified.py - Important: Build the glyphs of the outside letters in the composer (
Cx,Dzand the renamed written units), and list the standalone glyphs of the unified font as the designs do - Draw the wide MVS and the nirugu written unit in the composer; split a wide MVS into
nbsp+mvs.ignored - Draw the
C Wp Aligatures of Hudum Ali Gali - Merge the writing systems into the unified chapter tables in the docs
- Data
- Important: Rework the long vowel sign and FVS phases of the shaper; the ligated written form is built from the written form of the letter, so it matches the FVS lookup classes on its own
- Important: Add written units for the letters outside the writing systems; correct the joining positions of the ligature written units, and add the
WpAandNGAaligatures - Merge
I3intoIp; give Sibe and Manchu their own finalmawritten unit - Repair the Todo and Todo Ali Gali shaping paths, including the bowed classes of Todo Ali Gali
- Update the source data for the reworked shaper: the initial
nthat a consonant follows is writtenNrather thanA
- Shaping
- Carry the
markedthat an initial consonant asks for across the consonants of a cluster to the vowel that ends the syllable, as GB 25914—2023 requires - Let a vowel carry the gender a word's first vowel fixes to the vowel that ends the word
- Rework the cross-writing-system variant so that a written form is shared only where every writing system writes it with the same written units
- Carry the
- Docs
- Add a
written units overviewpage and aunified writing systempage - Add PDF export (
make_pdf.py,print.css) - Update
architecture.mdx,CONTRIBUTING.mdand the external links
- Add a
- Tooling
- Important: Flatten the OpenType feature code; let the type checker see the packages under
lib
- Important: Flatten the OpenType feature code; let the type checker see the packages under
- Tests
- Important: Explain every expected failure and mark it in one place; add a failure report (
failures.py) and a lookup trace (trace.py) for the unified font - Reorganize the suites on a per-writing-system basis, with the language each is shaped under declared in one map
- Important: Explain every expected failure and mark it in one place; add a failure report (
Full Changelog: v0.12.0...v0.12.1
v0.12.0
What's Changed
- Documentation
- Important: Rewrite the
Architecturedoc; add newToolchainandOther letters, digits and punctuationpages - Punctuation/digits rendering moved from
.astrointo a shared SveltePunccomponent; page renamednumbers-and-punctuation→digits-and-punctuation - Add a
ThemeProviderthat prevents copying Private Use Area characters from the docs site - Add per-locale
### Particle mappingsections (Hudum, Todo, Sibe, Manchu) with aParticleTable - Update UTN references; refresh
README/CONTRIBUTINGand the footer copyright notice
- Important: Rewrite the
- Data
- Important: New written‑unit and variant definitions in
writtenUnits.ts/variants.ts(regenerated JSON), incl. support for bow clusters used by particle forms - Remove duplicated
MCHxmasculine_onsetat the source instead of an FEA workaround - Manchu test‑font glyph
Hxrenamed toHx2
- Important: New written‑unit and variant definitions in
- Tooling
- Important: Add a unified root
check.pyrunning ruff, pyright, astro and svelte checks; fix all lint/type issues across the repo - Add
uv.lock; upgrade the TypeScript/Astro package toolchain - Refactor
PuncandLetterTable/WrittenUnitTable/Mongcomponent internals for the new rendering
- Important: Add a unified root
- Tests
- Add shaping expectations for the new particle mappings (MVS narrow/wide behaviour)
- Update Manchu shaping cases for the
Hx→Hx2rename
Full Changelog: v0.11.0...v0.12.0
v0.11.0
What's Changed
- Documentation
- Rewrite introduction
- Important: Support ligated variants; add ligature visualization table; removed font
DraftNew-Regular.otffromweb/public; replaced withwrittenunits‑Regular.ttf - Important: Synchronize the shaping rules base on the existing OTL, and fix #47
- Add Starlight custom Footer component with UTN copyright notice
- Add per‑locale tag components wrapping a shared
Mong.sveltecomponent - Update
→ init 0to→ initfor default (no FVS designation) forms, support link to each variant
- Data
- Important: Fully support GB locale glyph names; add GB format validation
- Important: New written unit definitions and control characters, move
niruguto written unitNi
- New: Templates
hudum.glyphs/hudum.fea— Glyphs templates for Hudummanchu.glyphs/manchu.fea— Glyphs templates for Manchuupdate.py— Script to update templates
- Tooling
- Important: Replaced
.marked/.unmarkedvariant system with marker‑based approach usingMARKER_MASCULINE_FALSE,MARKER_MASCULINE_TRUE, andMARKER_INITIALglyphs — supporting backward propagation of masculinity - Refactor of preprocessing lookups (G–M) for the new marker system; update
o_u_oe_uemarked vowel handling withMARKER_INITIALpropagation - Refactor
fromData: Acceptlocaleparameter for locale‑aware glyph name generation - New
logic.py: ExtractedresolveCmapVariants()andvariantFromReference()from__init__.py; cross‑locale default detection now checkslocale_data.written - Data reorganization:
JoiningPositionandjoiningPositionsmoved fromdata.misctodata.types
- Important: Replaced
- Tests
- New: Added
sibe.ufoandmanchu.ufotest fonts with full glyph sets - New: Test structure
test_module.py— Verifies FEA code generation viaMongFeaComposertest_templates.py— macOS‑only test that builds from Glyphs template and validates shapingtest_shaping.py— Per‑locale parameterized shaping tests (test_MNG,test_MCH,test_SIB)conftest.py— Session‑scoped fixtures for each locale font
fixtures.py: Replaced subprocessuv runwith directMongFeaComposerAPI calls; addedbuildFontForLocales()andloadRawTestCases()- Test data:
core-hag.tsvrenamediHag→iX,kHag→kX, etc.; updated aliases across all Sanskrit syllabary test cases
- New: Added
Full Changelog: v0.10.6...v0.11.0
v0.10.6
What’s Changed
- Specialize seldom used
GlyphDescriptor.__add__(), extract and migrate overlooked code toligateParts(), extractjoiningPositionConcatenation. ea5f509 1d518a1 e54440f - Extract
implementLigaturefor overriding. bb3ac94 - Move the phase
IIb.2(controls postprocessing) toIII.7. 2de7154 - Clear dependencies.
Full Changelog: v0.9.3...v0.10.6
v0.9.3
What’s Changed
- Important: Reorganize OTL code. 4e50798
- Important: Compose glyph with
.glyphNameProcessortaken into consideration. e713ede - Important: No longer construct glyphs inside
MongFeaComposer, but introduce FontSpec applied to font files. eb47af8 bd43b7c - Fix #30 . 7ea81e8
- Take
public.skipExportGlyphsinto consideration when constructioncmap. 5eb363c - Update glyph category for zero width joiner and zero width non-joiner. bc0360e
Full Changelog: v0.6.6...v0.9.3
v0.6.6
See v0.6.0 (which failed to publish to PyPI) for feature changes since v0.5.0.
Changes since v0.6.0:
- Fixed
ModuleNotFoundError: No module named 'fs'in CI and downstream projects. 3a67d2a - Migrated from Poetry to uv. ae48140
- Update EAC Hudum dataset, and thus pass all tests. ef7aadb
Full Changelog: v0.6.0...v0.6.6