Browser-based tools to publish a Progressive Web App (PWA) as an Universal Windows Platform (UWP) application.
During development, make the src directory available via HTTP.
For instance, run cd src && python3 -m http.server
(alias make devserve.)
Old browsers, including Internet Explorer 11, only (partially) work using the build, fit-for-distribution, website.
To build the fit-for-distribution website, run make.
The resulting content is put in dst/, ready to be uploaded to a webserver.
The build process requires an UNIX-like system, with GNU Make and a JRE ≥ 8 installed.
Some third-party open-source JARs are also needed.
They are automatically downloaded, on first need, by make.
(The HTTPGET variable defines the download command to execute. It’s curl
by default. wget -O - works too.)
These “development dependencies” are:
-
saxon9he.jar, a XSLT processor, mainly to embed CSS/JS code directly into the HTML.
On Ubuntu ≥ 18.04, you can alternativelyapt install libsaxonhe-java, then symlink/usr/share/java/Saxon-HE.jarto3p/saxon9he.jar. -
closure-compiler.jar, to transpile and minify JavaScript code.
⚠ The version available in Ubuntu package repositories is too old to work. -
yuicompressor.jar, to minify CSS code. -
htmlcompressor.jar, to minify HTML & XML code.
-
3p/: contains the third-party dependencies needed to build the fit-for-distribution website. See the Build section for how to get them. Not tracked bygit. -
dst/: the build, fit-for-distribution, website content. Generated usingmake. Not tracked bygit. -
src/: the source website content. Kept simple, stupid. HTML is repeated, CSS skips classes, JS is modular ES6 that transpiles cheaply. -
GNUmakefile: recipes to build the fit-for-distribution website. -
LICENSE.txt: licensing/copyright information for this repository. Everything is CC0. -
netlify.toml: configuration for hosting on Netlify. The Netlify↔GitHub integration is not used; deploys are manual. -
postprod.xsl: XSLT stylesheet used during the build process. -
README.md: this file.