Metadata-Version: 2.3
Name: mongfontbuilder
Version: 0.9.3
Summary: Mongolian Font Builder.
Author: Kushim Jiang, Liang Hai
Author-email: Kushim Jiang <kushim_jiang@outlook.com>, Liang Hai <lianghai@gmail.com>
License: MIT
Requires-Dist: cattrs>=24.1.2
Requires-Dist: pyyaml>=6.0.1
Requires-Dist: tptq-feacomposer>=1.11.3
Requires-Dist: ufo2ft>=3.4.3
Requires-Dist: ufolib2>=0.17.1
Requires-Dist: ufonormalizer>=0.6.2
Requires-Dist: unicodedata2>=16.0.0
Requires-Dist: babelfont>=3.1.3
Requires-Python: >=3.10
Project-URL: releasenotes, https://github.com/Kushim-Jiang/mongfontbuilder/releases
Project-URL: repository, https://github.com/Kushim-Jiang/mongfontbuilder
Description-Content-Type: text/markdown

# Mongolian Font Builder

The Mongolian Font Builder project consists of:

- **Documentation and data files** that clarify the encoding and shaping rules required for a font to be compatible with the Unicode Standard and China’s national standard GB/T 25914-2023.
  - Stabilized versions of the documentation will be published as revisions of [UTN \#57, Encoding and Shaping of the Mongolian Script](https://www.unicode.org/notes/tn57/) (the **Mongolian UTN**).
- **Tooling**, as a Python package `mongfontbuilder`, that helps font designers and developers produce a standard-compatible Mongolian script font, as clarified by the documentation.
  - It also acts the reference implementation of the Mongolian UTN.
- **Tests** for validating fonts produced by the tooling.

## Documentation and data files

The documentation is maintained in [web/docs/](https://github.com/Kushim-Jiang/mongfontbuilder/blob/main/web/docs) and deployed to [mongfontbuilder.pages.dev](https://mongfontbuilder.pages.dev/). For contribution guidelines, refer to [CONTRIBUTING.md](https://github.com/Kushim-Jiang/mongfontbuilder/blob/main/CONTRIBUTING.md).

The source-of-truth data files are maintained as TypeScript files in [data/](https://github.com/Kushim-Jiang/mongfontbuilder/blob/main/data). They’re exported to JSON in [lib/mongfontbuilder/data/](https://github.com/Kushim-Jiang/mongfontbuilder/tree/main/lib/mongfontbuilder/data) for consumption of the Python API.

## Tooling

The Python package `mongfontbuilder` is maintained in [lib/](https://github.com/Kushim-Jiang/mongfontbuilder/blob/main/lib) and published to [PyPI](https://pypi.org/project/mongfontbuilder/). To install the package in terminal:

```sh
pip install mongfontbuilder
```

This package includes various utilities, including:

- Python API for the data files.
- Dynamic generation of OpenType Layout rules.
- Construction of a complete font from a minimal glyph set.

## Tests

Maintained in [tests/](https://github.com/Kushim-Jiang/mongfontbuilder/blob/main/tests).

Currently the following EAC test cases are expected to fail:

- `eac-hud > XIM11-39`, `eac-hud > XIM11-40`, `eac-hud > XIM11-41`
  - The EAC spec assumes that all features of NNBSP should be disabled. The UTN model considers this test case incorrect. The UTN model considers that the old functionality of NNBSP should be retained.
- `eac-hud > XIM11-46`
  - The EAC spec expects an invalid FVS after a letter to prevent the MVS shaping step. The UTN model disagrees.
- `eac-hud > XIM11-1012`
  - When an FVS after a letter prevents the MVS shaping step, the MVS is treated as an NBSP. In this case, the FVS remains valid. The UTN model considers this test case incorrect.
- `eac-hud > MSM11-2`, `eac-hud > XIM11-16`
  - The currently exported font does not yet account for shaping rules based on locale, resulting in these two tests failing. Future efforts will focus on resolving this issue to pass both tests.
