Makefile
: start by regenerating it by runningmake update
(or seemakegen.pl
under.p/
below). Then run it without argument to generate everything.
home.html
: homepage template.html.html
: html template for the keyboard lessons.arabic.ini
: Arabic localization forhtml.html
.english.ini
: English localization forhtml.html
.
makegen.pl
: generates the Makefile; call it as.p/makegen.pl > Makefile
when you add or remove or rename a keyboard.mkhome.pl
: generates the homepage.mkkeyboard.pl
: parses the keyboard and inserts it properly in the html template.mklessons.pl
: parses the lessons and inserts them properly in the html template.mapping.pl
: adds the emulation data to the html.flipdirection.pl
: flips the horizontal direction of css, and removes the Arabic font.applyini.pl
: applies the localization to the html.hash-for-cache.pl
: adds a unique querystring to static resources for cache-busting on change.minifier.pl
: call it with a first arg ofjs
,css
, orhtml
, so it calls the appropriate tool. needsdeno
.html-minify.pl
: the "appropriate tool" for minifying html. the same one used in Recite.
arabic.js
: Arabic-specific definitions and messages.english.js
: English-specific definitions and messages.javascript.js
: basically all of the business logic.main-style.css
: CSS for the homepage only.style.css
: CSS for the Arabic lessons pages (see alsoltr-style.css
below).test.js
: some sanity checks.KawkabMono-Bold-subset-scaled.woff2
, andKawkabMono-Regular-subset-scaled.woff2
: Beautiful monowidth Arabic font; https://makkuk.com/kawkab-mono/; OFL-1.1; scaled 75%, and all non-Arabic glyphs removed.
ar-words.js
: an array of all our Arabic words; generated from.w
viaMakefile
.en-words.js
: an array of all our English words; generated from.w
viaMakefile
.ltr-style.css
: CSS for the English lessons pages; generated fromstyle.css
by.p/flipdirection.pl
viaMakefile
.*.min.*
: generated from the corresponding files without the.min
part, except for the following two.ar.min.js
: concatenation ofarabic.js
andjavascript.js
then minified.en.min.js
: concatenation ofenglish.js
andjavascript.js
then minified.
The words.
The Arabic words are based on WikiSource Voweled Imalaai Quran Text
The English words are based on XKCD Simple Writer Word List 0.2.1.
.kb
: the layout itself..ls
: the lessons in a custom language..info
: some metadata; currently only the human-friendly name of the layout..mapping.js
: an object mappingKeyboardEvent.code
to[normalChar, shiftedChar]
, for emulation. SeeKeyboardEvent.code
and Keyboard event code values on MDN.
Hidden Keyboards (.qwerty/
, .mac-ar/
)
Like Keyboards above, but incomplete, as they exist primarily for development reasons.