The ttfmeta library is extremely rudimentary. It does next to no error checking, and supports only a small part of the TTF spec. It did not support NAME platforms 0 or 3 (the most common platform, Windows), and these are encoded in UTF-16BE. This patch adds support for those platforms and throws if an unsupported platform/encoding is encountered. Now, the ttfmeta library is unsupported and gone (#11630). It is based on another library, ttfinfo, last updated 11 years ago. This is not great. But the other Node libraries that I located introduce further dependencies or complex builds (e.g. WASM) and that's not great either, for a function used only in one place in our build environment. https://learn.microsoft.com/en-us/typography/opentype/spec/name The test-font-family.ts runs a basic test against Lateef font, and has a skipped test that can be run (with minor edits) against all fonts in the keyboard repository. I have done this to verify that there are no fonts that return errors, but have disabled this test for deployment for now. Fixes: #11625 |
||
|---|---|---|
| .. | ||
| common | ||
| ext | ||
| images | ||
| inst | ||
| kmanalyze | ||
| kmc | ||
| kmc-analyze | ||
| kmc-keyboard-info | ||
| kmc-kmn | ||
| kmc-ldml | ||
| kmc-model | ||
| kmc-model-info | ||
| kmc-package | ||
| kmcmplib | ||
| kmconvert | ||
| kmdecomp | ||
| samples | ||
| server | ||
| setup | ||
| test | ||
| tike | ||
| tools | ||
| .eslintrc.cjs | ||
| .gitignore | ||
| Defines.mak | ||
| developer.groupproj | ||
| developer.sln | ||
| Header.mak | ||
| history.md | ||
| Makefile | ||
| README.md | ||
| Target.mak | ||
Keyman Developer
This is the current home for Keyman Developer.
Cross-dependencies
We do not have 100% clean separation between Keyman Developer and Keyman for Windows. Shared units are intended to live in common, however the following projects will need to be updated in the future.
- kmbrowserhost in Windows is included as part of Keyman Developer.
Folders
src/common
Units shared among Keyman Developer projects, Delphi
src/ext
3rd party code and components, mostly Delphi
src/inst - keymandeveloper.msi
Building and signing of the installation archive keymandeveloper.msi.
src/inst/node
Contains a minimal distribution of node.js intended just for running kmc. If more dependencies are required, then the developer will be expected to install node.js themselves; this gets users going without requiring a large installer or a full node.js install.
src/kmanalyze - kmanalyze.exe
A keyboard source analysis and automated regression test tool. Testing for logical errors of a keyboard.
src/kmconvert - kmconvert.exe & kmconvert.x64.exe
KMConvert converts keyboard layouts between different formats. KMConvert will generate a full Keyman template project from the imported layout or data, in a new folder named with the ID of the keyboard. It will not overwrite an existing folder. Also used to generate new projects from templates.
src/kmdecomp - kmdecomp.exe
Unsupported utility decompiles a Keyman .kmx keyboard. It will produce a .kmn source file and optionally a .ico or .bmp image. see kmdecomp/kmdecomp.md for details.
src/kmc
node-based next generation compiler, hosts kmc, (and legacy kmlmc, kmlmp)
src/kmc-analyze - Analysis tools
File analysis tools for Keyman files.
src/kmc-keyboard-info - Keyboard Info Compiler
Builds .keyboard_info files for use on the Keyman Cloud keyboard repository at https://github.com/keymanapp/keyboards. Command line access through kmc.
src/kmc-kmn - Keyboard Compiler
Builds .kmx files from .kmn. Command line access through kmc.
src/kmc-ldml - LDML Keyboard Compiler
Next Generation keyboard compiler - LDML keyboards. Command line access through kmc.
src/kmc-model - Lexical Model Compiler
The Lexical Model Compiler, runs on nodeJS on all supported desktop platforms. Command line access through kmc.
src/kmc-model-info - Model Info Compiler
Builds .model_info files for use on the Keyman Cloud lexical model repository at https://github.com/keymanapp/lexical-models. Command line access through kmc.
src/kmc-package - Package Compiler
Compiles .kps packages into .kmp files. Works with both lexical model packages and keyboard packages. Command line access through kmc.
src/samples
Contains sample keyboards and sample developer projects. See readme.txt for details.
src/server
Keyman Developer Server. Node-based, cross platform host app for Keyman Developer. Used currently for web-based test and deployment. In future, will be the foundation for a web-based Keyman Developer project.
src/setup - setup.exe
Installation program for Keyman Developer for Windows. Bundles with keymandeveloper.msi to generate single deployable installer executable.
src/tike - "Tavultesoft Integrated Keyboard Editor"
This is the designer side of the Developer. Used for designing, developing, testing and packing keyboards for distribution.
src/tools
Various build-time tools for Keyman Developer.