mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-06 08:55:34 +00:00
This is work arising from the spacebarText postmortem. The only changes in this commit at present are in the readme, just to give us a pull request to play with.
75 lines
3.4 KiB
Markdown
75 lines
3.4 KiB
Markdown
# Keyman Engine for Web
|
|
The Original Code is (C) SIL International
|
|
|
|
## Prerequisites
|
|
See [build configuration](../docs/build/index.md) for details on how to configure your build environment.
|
|
|
|
**********************************************************************
|
|
|
|
The following folders contain the distribution for KeymanWeb:
|
|
|
|
source Source code
|
|
source/resources/osk OSK resources for inclusion in mobile app builds;
|
|
keymanweb-osk.ttf is maintained at https://github.com/silnrsi/font-keymanweb-osk
|
|
unit_tests Automated testing resources
|
|
|
|
intermediate Intermediate compiled code; TypeScript source is compiled here before it is minified.
|
|
release/web Fully-compiled KeymanWeb modules for testing
|
|
release/embedded Fully-compiled KMEA/KMEI modules for inclusion in mobile app builds
|
|
release/unminified/web Fully-compiled but non-minified KeymanWeb modules
|
|
release/unminified/embedded Fully-compiled KMEA/KMEI modules for inclusion in mobile app builds
|
|
|
|
samples Sample pages demonstrating ways to link with KeymanWeb
|
|
testing Test-case web-pages for various aspects of KeymanWeb functionality
|
|
unit_tests A Node-driven test suite for automated testing of KeymanWeb
|
|
|
|
## Usage
|
|
Open **index.html** or **samples/index.html** in your browser. Be sure to compile KeymanWeb before viewing the pages.
|
|
|
|
Refer to the samples for usage details.
|
|
|
|
To view pages using compiled KeymanWeb,
|
|
1. cd to **keyman/web/source**
|
|
2. Run `./build.sh`
|
|
|
|
### `build.sh` options:
|
|
|
|
* `-ui`
|
|
- to compile desktop user interface modules to output folder
|
|
* `-test`
|
|
- to compile for testing without copying resources or updating the saved version number.
|
|
* `-embed`
|
|
- to compile only the KMEA/KMEI embedded engine.
|
|
* `-web`
|
|
- to compile only the KeymanWeb engine.
|
|
* `-debug_embedded`
|
|
- to compile a readable version of the embedded KMEA/KMEI code
|
|
* `-no_minify`
|
|
- to disable the minified '/release/web' and '/release/embedded' build sections.
|
|
- the '/release/unminified/web' and '/release/unminified/embedded' folders will still be built.
|
|
* `-clean`
|
|
- to erase pre-existing build products before the build.
|
|
|
|
If more than one target is specified, the last one will take precedence.
|
|
|
|
### Unit Testing ###
|
|
|
|
Before running unit tests on KeymanWeb, first run `./build.sh` according to the instructions above.
|
|
|
|
Once the build is complete, running `npm test` will run the unit testing suite on your local machine in-browser.
|
|
Alternatively, see `unit_tests/test.sh`, which the former command executes.
|
|
|
|
### Debugging Unit Tests
|
|
1. During development, to run a specific unit test, change the `it` to `it.only`.
|
|
You can also run all tests under a specific group with `describe.only`.
|
|
2. From this directory, run `./unit_tests/test.sh -debug`.
|
|
Alternatively, from `web/` or any `web/` subdirectory,
|
|
```
|
|
npm run test -- -debug
|
|
```
|
|
The `--` part tells `npm` to funnel anything to the script as the script's command-line parameters.
|
|
As long as it's run from somewhere within the `web/` folder's hierarchy, that line will always run from `web/`,
|
|
as that's where `package.json` is.
|
|
|
|
3. When the browser halts, click the "Debug" button which opens a new debugging tab.
|
|
4. In the Dev console, you can set a breakpoint in your test and refresh the page to debug
|