The PWA2UWP toolkit
Browser-based tools to publish a Progressive Web App (PWA) as an Universal Windows Platform (UWP) application.
src/index.html in Firefox for local use.
Blink & WebKit browsers need an HTTP server, due to (over)restrictions
cd src && python3 -m http.server is an idea.
Old browsers, including Internet Explorer 11, only (partially) work using the build, fit-for-distribution, website.
To build the fit-for-distribution website, run
The resulting content is put in
dst/, ready to be uploaded to a webserver.
Some third-party open-source JARs are also needed.
They are automatically downloaded, on first need, by
HTTPGET environment variable defines the download command to execute.
curl by default.
wget -O - works too.)
These “development dependencies” are:
Saxon-HE 9.≥8, a XSLT 2 processor, to embed CSS/JS code directly into the HTML & more.
Put in a
saxon9he.jar. On Ubuntu ≥ 18.04, you can
libsaxonhe-javapackage, then symlink
closure-compiler.jar. (⚠ The version available in Ubuntu package repositories is too old to work.)
The YUICompressor, to minify CSS code.
htmlcompressor.jardelegates that job to it.
htmlcompressor.jar, to minify HTML & XML code. Put in
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 by
dst/: the build, fit-for-distribution, website content. Generated using
make. Not tracked by
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.