1. This is an initial conversion, so much editing to do.
2. Establishes a build script with pandoc dependency.
3. Works to build both .chm and .md on website.
4. Docbook is no longer required; removed in follow-up PR.
Fixes#4068.
If a keyman://download/keyboard/ link contains an `=` sign (e.g. for
BCP 47 tag), then kmshell was treating it as a parameterised local
filename rather than giving it the property url protocol handler
treatment.
Fixes#4003.
This addresses the majority of locations where we use the name "Keyman
Desktop" in code. There will be some filenames and paths that do not
change at this point -- particularly at a source level. For now, the
focus is on the user interface changes.
While making these changes, I also made the VERSION and MANIFEST
resources more consistent.
We used the 'Started' event when testing Sentry integration. We no
longer need it, but I left it in as commented code so we can re-enable
if/when we do Sentry updates in the future and need to re-test.
Fixes#3993.
Fixes KEYMAN-WINDOWS-4P.
Handles network errors which caused an exception, e.g. connection timed
out, or 12030 The connection with the server was terminated abnormally.
Fixes#3563.
When a keyboard is updated in an online update check, keep the existing
language assocations. This is fixed by using the new install paradigm
which does not change the user's language associations, and so it also
happens to fix issues with non-elevated users who do an update and would
end up with no languages installed.
Fixes#3994.
Task creation was failing for some users because Windows Tasks are all
stored in a shared folder, so attempts to use the same task name by
different users were failing, especially if the user was a non-admin
user.
Furthermore, attempts to execute the trigger would fail because Windows
treats keyman.exe as needing elevation in this context (even though it
doesn't, actually), and so I changed the trigger to call `kmshell -s`,
which then does the needful.
Finally, the uninstaller now attempts to remove all the scheduled tasks
in the Keyman folder. It doesn't care if it fails -- it's just cleanup
and doesn't impact the system adversely if the tasks hang around.
In some circumstances, Sentry would get a range check error while
processing the call stack due to DWORD being defined as NativeInt,
not NativeUInt, in old JWA libraries. This would mask the original
exception, and could cause the app to hang.
Fixes#3863.
This adds the new `*RTLEnter*` and other tags introduced in #3851 to
the touch layout editor, and adds validation for use in 14.0 keyboards.
Due to a limitation in the compiler architecture, use of these tags
will not trigger the automatic keyboard versioning functionality; the
keyboard developer must explicitly specify `store(&VERSION) '14.0'`.
Also:
* synchronised error codes between .h and .pas.
* synchronised touch layout tags between Developer and KeymanWeb, and
cleaned up builder.js usage thereof.
* added support for KeymanwebOsk font override when special tags are
identified.
* added basic tests to ensure that the compiler is catching use of these
tags as needed.
* updated keymanweb-osk.ttf font in Developer.