spiegel-keyman/developer/src/kmldmlc
Marc Durdin 17371c3801 feat(common): add size and offset calculators to hextobin
This makes it easier to write a binary file which contains offsets and
size values. Using this for unit tests for the LDML keyboard compiler.

Example kmldmlc basic.txt is updated and included.

Future enhancement suggestion: include count() for repeated blocks and
index() for block indices within these repeated blocks. Would be very
useful for string tables in the example ref.
2022-09-02 11:37:59 +10:00
..
src feat(developer): use json schema to verify source file 2022-09-01 16:56:50 +10:00
test feat(common): add size and offset calculators to hextobin 2022-09-02 11:37:59 +10:00
.gitignore feat(developer): LDML keyboard compiler - infrastructure 2022-08-23 10:27:34 +10:00
build.sh feat(developer): use json schema to verify source file 2022-09-01 16:56:50 +10:00
bundle.inc.sh chore(developer): cleanup comments 2022-08-24 03:54:25 +10:00
Makefile chore(developer): cleanup comments 2022-08-24 03:54:25 +10:00
package.json feat(developer): use json schema to verify source file 2022-09-01 16:56:50 +10:00
README.md chore: Apply suggestions from code review 2022-08-24 09:29:03 +10:00
tsconfig.json feat(developer): add loca tests 2022-08-31 10:18:57 +10:00

Keyman Developer - LDML Keyboard Compiler

This package provides the following Keyman command line tool:

  • kmldmlc — takes LDML Keyboard .xml sources and compiles them in to a KMXPlus .kmx file.

Install

Install kmlmdlc globally:

npm install -g @keymanapp/ldml-keyboard-compiler

Usage

To compile an LDML keyboard from its .xml source, use kmldmlc:

kmldmlc my-keyboard.xml --outFile my-keyboard.kmx

To see more command line options by using the --help option:

kmldmlc --help

How to build from source

Run build.sh:

./build.sh configure build

or

nmake configure build

Once you have configured once, you should not normally need to do it again unless dependencies change. ./build.sh without parameters will do the default action, which is build.

How to run the tests

./build.sh test

How to prepare bundling for installation

./build.sh bundle --build-path <temp_path>

The temp_path must be a path outside the repository to avoid npm getting confused by the root package.json. This is called by inst/download.in.mak normally when building the Keyman Developer installer.

How to publish to NPM

./build.sh publish [--dry-run]

Publishes the current release to NPM. This should only be run from CI.