Fontpackage is the standard for packaging and distributing font projects. The Fontpackage format is a container for a font family's font files and extended metadata. Its purpose is to contain all necessary working files for a font family, as well as its meta-information.
[TODO: Introduction and background]
While the Fontpackage standard aims to standard is simple and requires only minimum dataset to validate. The core of the standard is the higely custmisable manifest file fontpackage.toml
which sits at the root of the respository. The reccomended repository layout for Fontpackage is Unified Font Respository (UFR) layout, which defines a standard for orgnising all source files and documentation of a font project. However, Fontpackage only requiers the following files to validate.
fontpackage.toml
LICENSE
FONTLOG.md
▾ fonts #This is compatible with UFR and the defult location for binaries.
▾ otf/
*.otf
▾ otf/
*.otf
▾ webfonts/
*.woff
*.woff2
index.css
NOTE: Package authours who choose not to use the UFR may point to font binaries and other files from the manifest file with URI relative to root. The minimum requierment for validating as a fontpackage is a fontpackage.toml
at the root of the reposiotry, pointing to the font binaries.
[TODO: Include complete layout]
The manifest file fontpackage.toml
on the root of the repo contains a superset of data provided in the 'METADATA.yml' of the UFR. fontpackage.toml
provides the information, metadata and classification data.
There are four main blocks in fontpackage.toml
- Package metadata (required)
- Display and classification data (optional)
- App specific blocks (Other metadata or config relating to specific apps)
[TODO]
NOTE: [TODO: Explanation] Why we commit binaries to the git repo?
[TODO]
Unified Font Repository: UFR is a standard repository layout to organize font project sources; covering all files including documentation, tests, source files and etc. Fontpackage is a standard for distributing font binaries and metadata. Fontpackage is fully compatible with UFR structure.
There are data duplication in the METADATA.yml
and the fontpackage.toml
This is something we have to
[TODO]
This specification aim to work with git artifacts and develop the standard to be provider-agnostic. Implementation will require working with APIs from respective Git service provider, in this case Github REST API.
[TODO: Intro]
[TODO]
[TODO]
[TODO]
- Develop a standard for font project repositories treating font project as a ‘font package’
- Develop an universal standard for the font package, providing metadata for direct distribution from the repository and consumption by conforming package managers or sync clients (primarily Type.World)
- Provide tooling and workflow to easily packages fonts for other platforms (ie; npm, Appstream specification)
- Optionally use the same manifest file to include build and testing configurations for other tools (fontmake, fontbakery)
- Unified Font Repository (UFR)
- Google Fonts repositories Standard followed by the most of Google Fonts repositories
- Google Fonts METADATA.pb files : Metadata files in Google Fonts repositories by Google Fonts
- Appstream specification metadata
- Foundry in a Box
- typefaces: NPM packages for Open Source typefaces.
- fontctrl: A package manager for fonts
[TODO]
[TODO]