spiegel-keyman/web
Darcy Wong d03ab9fef1 Pass "tab" and "enter" back to Android app to handle
Instead of KMW inserting whitespace, pass those keys back to the embedded app to natively handle.
2019-01-11 11:24:13 +07:00
..
bulk_rendering Fixes a scoping issue on the final render step - device notes. 2018-12-18 11:47:56 +07:00
samples PR review addressing. 2018-03-19 14:02:20 +07:00
source Pass "tab" and "enter" back to Android app to handle 2019-01-11 11:24:13 +07:00
testing Fixes the touch bug - CSS 'opacity' settings were to blame. 2018-12-18 08:32:52 +07:00
unit_tests Updates BrowserStack configuration settings, fixes a minor error. 2018-10-24 10:47:09 +07:00
.editorconfig Update resetContext 2017-09-07 15:06:11 +07:00
.gitattributes Patches up the /samples pages. 2018-01-08 09:51:19 +07:00
.gitignore A basic, initial set of tests with the infrastructure necessary to link nicely with our TeamCity CI. 2018-02-05 15:15:10 +07:00
history.md Fix history.md (again) 2019-01-03 14:59:08 +07:00
index.html Refactored the samples section to create a separate testing section. 2017-10-11 15:31:06 +07:00
LICENSE Move KeymanWeb project to web/ 2017-05-26 11:00:34 +07:00
NOTICE Move KeymanWeb project to web/ 2017-05-26 11:00:34 +07:00
package-lock.json Sets the promise-polyfill library as a true dependency. 2018-12-14 15:30:59 +07:00
package.json Sets the promise-polyfill library as a true dependency. 2018-12-14 15:30:59 +07:00
README.md Documentation. 2018-02-07 14:02:03 +07:00

Keyman Web

The Original Code is (C) 2017-2018 SIL International

Minimum Web Compilation Requirements

  • Java 7+ (required by the Google Closure Compiler)
    • This can be ignored for Keyman Developer builds.
  • A local installation of Node.js v8.9+.
    • Builds will call npm install to automatically install further necessary build dependencies.

    • Linux users can run the following to update to LTS version of nodejs

sudo apt-get install python-software-properties
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install nodejs

The following folders contain the distribution for KeymanWeb:

source				Source code
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.