diff -urP mkws/4.0.16/mkws/Makefile mkws/4.0.17/mkws/Makefile
--- mkws/4.0.16/mkws/Makefile	Wed Jan 26 00:29:04 2022
+++ mkws/4.0.17/mkws/Makefile	Mon Sep 26 18:15:46 2022
@@ -1,6 +1,3 @@
-CC = cc
-LD = ${CC}
-
 PREFIX = /usr/local
 MANPREFIX = ${PREFIX}/share/man
 
diff -urP mkws/4.0.16/mkws/NEWS mkws/4.0.17/mkws/NEWS
--- mkws/4.0.16/mkws/NEWS	Thu Jan  1 02:00:00 1970
+++ mkws/4.0.17/mkws/NEWS	Mon Sep 26 18:15:46 2022
@@ -0,0 +1,276 @@
+# Changelog
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [4.0.17]
+### Added
+- `NEWS`
+
+### Changed
+- `README' covers standalone `mkws` script usage
+- Quote substitutions in `mkws`
+
+## [4.0.16]
+### Removed
+- macOS instructions in [`README`](https://v.mkws.sh/mkws/4.0.15..4.0.16#README)
+
+## [4.0.15]
+### Added
+- Howtos to [`README`](https://v.mkws.sh/mkws/4.0.14..4.0.15#README)
+
+### Changed
+- Typos in "File Hierarchy" of [`README`](https://v.mkws.sh/mkws/4.0.14..4.0.15#README)
+- Archive name in [`README`](https://v.mkws.sh/mkws.sh/4.0.14..4.0.15#README)
+
+## [4.0.14]
+### Added
+- macOS instructions in `README`
+### Changed
+- `README` description to a single line
+- "File Hierarchy" position lower in `README`
+- Archive name in `README`
+
+## [4.0.13]
+### Added
+- `initial-scale` content to `viewport` `meta` in `README` examples
+
+### Changed
+- Archive name in `README`
+
+## [4.0.12]
+### Changed
+- Archive name in `README`
+
+### Removed
+- Web site compressed files
+
+## [4.0.11]
+### Added
+-
+
+### Changed
+- Description in `README`
+- Archive name in `README`
+- `srcdir` and `sharedir` variables in `mkws` to `src` and `share` and `export` them
+
+### Removed
+- `robots.txt` reference in `mkws.1`
+
+## [4.0.10]
+### Changed
+- Archive name in `README`
+
+### Removed
+- `HOWTO`
+
+## [4.0.9]
+### Added
+- `HOWTO` back
+
+## [4.0.8]
+### Added
+- Missing ` to tree in "File Hierarchy" section in`README`
+- "Templates" section to `README`
+- Customization instructions at the end of the "File Hierachy" section in `README`
+
+### Changed
+- Archive name in `README`
+
+### Removed
+- `HOWTO`
+
+## [4.0.7]
+### Added
+-
+
+### Changed
+- Archive name in `README`
+
+### Removed
+- `man` section from project name in `HOWTO
+
+## [4.0.6]
+### Added
+- Description to `README`
+- "File Hierarchy" section to `README`
+- "Generate the Static Site" section to `README`
+
+### Changed
+- Copyright year and email address in `LICENSE`
+- Requirements section in `README`
+- Installation section in `README`
+- Archive name in `README`
+- "Important!" section to "Note" and reword it
+- Escape newline characters in `mkws` messages
+
+### Removed
+- `man` section from project name in `README`
+
+## [4.0.5]
+### Changed
+- Archive name in `README`
+
+## [4.0.4]
+### Removed
+- empty new lines in examples for "How To Add Custom Titles (or `meta` tags) For Each Page"
+in `HOWTO`
+
+
+## [4.0.3]
+### Changed
+- Switch to singular urls in `HOWTO` examples
+- Archive name in `README`
+
+## [4.0.2]
+### Changed
+- Archive name in `README`
+
+### Removed
+-  Extra \*\* at end of quoting instructions in `README`
+
+## [4.0.1]
+### Added
+- Quoting instructions `README`
+
+### Changed
+- Archive name in `README`
+
+### Removed
+- `robots.txt` references in `mkws.1`
+
+## [4.0.0]
+### Changed
+- Archive name in `README`
+
+### Removed
+- Generating `robots.txt` in `mkws` script
+
+## [3.0.8]
+### Added
+- Generating `robots.txt` in `mkws` script
+
+### Changed
+- Correct archive name in `README`
+
+## [3.0.3]
+### Changed
+- Archive name in `README`
+
+### Removed
+- Generating `robots.txt` in `mkws` script
+
+## [3.0.2]
+### Changed
+- Archive name in `README`
+
+## [3.0.0]
+### Changed
+- Archive name in `README`
+- Link to absolute path to `pp` in `README`
+- Use `s.uppcss` as `CSS` file instead of `theme.uppcss` in `mkws` script
+
+## [2.0.8]
+### Changed
+- Archive name in `README`
+
+## [2.0.7]
+### Added
+- `-e` flag to `/bin/sh` shebang in `mkws` script
+
+### Changed
+- Archive name in `README`
+
+### Removed
+- Trailing slash in `HOWTO` `mkws` web site url
+
+## [1.0.7]
+### Changed
+- Archive name in `README`
+
+## [1.0.6]
+### Changed
+- Archive name in `README`
+
+## [1.0.5]
+### Changed
+- `https` links to web site in `README`
+
+## [1.0.4]
+### Changed
+- Archive name in `README`
+
+## [1.0.3]
+### Added
+-
+
+### Changed
+-
+
+### Removed
+-
+
+## [1.0.2]
+### Added
+- `HOWTO`
+- "How To Add a Navigation Menu" to `HOWTO`
+- "How To Add Custom Titles" to `HOWTO`
+- "How To Render `Markdown`" to `HOWTO`
+
+## [1.0.1]
+### Added
+- Variable quotes in `mkws`
+
+### Changed
+- `LICENSE` copyright year
+- Simplify link to Linux in `README`
+- Properly link to WSL in `README`
+- Specify instructions apply to Linux in `README`
+- Specify Linux download link by default in `README`
+- Rename `shareddir` variable in `mkws`
+- Bump version in `README`
+
+### Removed
+- Nav menu instructions in `README`
+
+## [1.0]
+### Added
+- `Makefile`
+- `mkws`
+- `mkws.1`
+- `LICENSE`
+- `README`
+
+[4.0.17]: https://v.mkws.sh/mkws/4.0.16..4.0.17
+[4.0.16]: https://v.mkws.sh/mkws/4.0.15..4.0.16
+[4.0.15]: https://v.mkws.sh/mkws/4.0.14..4.0.15
+[4.0.14]: https://v.mkws.sh/mkws/4.0.13..4.0.14
+[4.0.13]: https://v.mkws.sh/mkws/4.0.12..4.0.13
+[4.0.12]: https://v.mkws.sh/mkws/4.0.11..4.0.12
+[4.0.11]: https://v.mkws.sh/mkws/4.0.10..4.0.11
+[4.0.10]: https://v.mkws.sh/mkws/4.0.9..4.0.10
+[4.0.9]: https://v.mkws.sh/mkws/4.0.8..4.0.9
+[4.0.8]: https://v.mkws.sh/mkws/4.0.7..4.0.8
+[4.0.7]: https://v.mkws.sh/mkws/4.0.6..4.0.7
+[4.0.6]: https://v.mkws.sh/mkws/4.0.5..4.0.6
+[4.0.5]: https://v.mkws.sh/mkws/4.0.4..4.0.5
+[4.0.4]: https://v.mkws.sh/mkws/4.0.3..4.0.4
+[4.0.3]: https://v.mkws.sh/mkws/4.0.2..4.0.3
+[4.0.2]: https://v.mkws.sh/mkws/4.0.1..4.0.2
+[4.0.1]: https://v.mkws.sh/mkws/4.0.0..4.0.1
+[4.0.0]: https://v.mkws.sh/mkws/3.0.8..4.0.0
+[3.0.8]: https://v.mkws.sh/mkws/3.0.3..3.0.8
+[3.0.3]: https://v.mkws.sh/mkws/3.0.2..3.0.3
+[3.0.2]: https://v.mkws.sh/mkws/3.0.0..3.0.2
+[3.0.0]: https://v.mkws.sh/mkws/2.0.8..3.0.0
+[2.0.8]: https://v.mkws.sh/mkws/2.0.7..2.0.8
+[2.0.7]: https://v.mkws.sh/mkws/1.0.7..2.0.7
+[1.0.7]: https://v.mkws.sh/mkws/1.0.6..1.0.7
+[1.0.6]: https://v.mkws.sh/mkws/1.0.5..1.0.6
+[1.0.5]: https://v.mkws.sh/mkws/1.0.4..1.0.5
+[1.0.4]: https://v.mkws.sh/mkws/1.0.3..1.0.4
+[1.0.3]: https://v.mkws.sh/mkws/1.0.2..1.0.3
+[1.0.2]: https://v.mkws.sh/mkws/1.0.1..1.0.2
+[1.0.1]: https://v.mkws.sh/mkws/1.0..1.0.1
+[1.0]: https://v.mkws.sh/mkws/1.0
diff -urP mkws/4.0.16/mkws/README mkws/4.0.17/mkws/README
--- mkws/4.0.16/mkws/README	Wed Jan 26 00:29:04 2022
+++ mkws/4.0.17/mkws/README	Mon Sep 26 18:15:46 2022
@@ -1,29 +1,40 @@
 # `mkws`
 
-A simple static site generator using `sh` as a templating language.
+A simple static site generator using `sh` as a templating language
 
 ## Requirements
 
-We provide binaries for [Linux](https://mkws.sh/mkws@4.0.16.tgz) and
-[OpenBSD](mkws-openbsd@4.0.16.tgz). It can also run on
-[Windows](https://www.microsoft.com/windows) via the
-[Windows Subsystem for Linux](https://docs.microsoft.com/en-us/windows/wsl/install-win10) for other UNIX like operating systems, you can build from
+We provide binaries for [Linux](//mkws.sh/mkws.tgz) and
+[OpenBSD](//mkws-openbsd.tgz). It can also run on
+[Windows](//www.microsoft.com/windows) via the
+[Windows Subsystem for Linux](//docs.microsoft.com/en-us/windows/wsl/install-win10) for other UNIX like operating systems, you can build from
 sources.
 
 ## Install `mkws`
 
-On a Linux machine, just download the archive from
-[https://mkws.sh/mkws@4.0.16.tgz](https://mkws.sh/mkws@4.0.16.tgz) or in
-the terminal, assuming `curl` is installed, type:
+### Dependecies
 
-	curl -so - https://mkws.sh/mkws@4.0.16.tgz | tar -xzvf -
+`mkws` depends on [pp](//mkws.sh/pp.html) and [lts](//mkws.sh/lts.html).
+You'll have to install those first before running `mkws`.
 
+On a Linux or BSD machine, in a terminal, download the sources from [//mkws.sh/mkws/mkws@4.0.17.tgz] and install the program:
+	
+	mkdir -p ~/src/mkws.sh
+	cd ~/src/mkws.sh
+	curl -s //mkws.sh/mkws/mkws@4.0.17.tgz | tar -xzvf -
+	cd mkws
+	make install PREFIX=$HOME
 ## Generate the Static Site
 
-Rename the directory you unarchived earlier to your site's name:
+Create a new directory for your static web site
 
-	mv ws.sh example.com && cd example.com
+	mkdir ~/src/example.com
+	cd ~/src/example.com
 
+Download a theme, we'll use the base theme in or example:
+
+	curl -s //t.mkws.sh/base/base@3.1.0.tgz | tar -xzvf -
+
 Create your first template named `index.upphtml`, this is required by
 `mkws`:
 
@@ -37,7 +48,7 @@
 
 Run `mkws`:
 
-	./bin/mkws https://example.com
+	mkws //example.com
 
 You just generated your first static site with `mkws`. You will now
 have an `index.html` file in your `.` root directory containing the
@@ -76,14 +87,14 @@
 
 For further customizations you can always modify your
 `./bin/mkws` or `./share/l.upphtml` files, in
-fact, it's recommended.</p>
+fact, it's recommended.
 
 ## Templates
 
 `mkws` uses `*.upphtml` files as templates which are processed via
-[`pp`](https://mkws.sh/pp.html), a preprocessor that allows embedding
+[`pp`](//mkws.sh/pp.html), a preprocessor that allows embedding
 [`sh`](
-https://pubs.opengroup.org/onlinepubs/9699919799/utilities/sh.html)
+//pubs.opengroup.org/onlinepubs/9699919799/utilities/sh.html)
 code in files of any type by nesting it inside the `#!\n` token, where
 `\n` is a new line.
 
@@ -129,9 +140,9 @@
 
 ## Note
 
-Because [`pp`](https://mkws.sh/pp.html) uses
+Because [`pp`](//mkws.sh/pp.html) uses
 [`sh`](
-https://pubs.opengroup.org/onlinepubs/9699919799/utilities/sh.html)
+//pubs.opengroup.org/onlinepubs/9699919799/utilities/sh.html)
 internally, double quotes (`"`) must be escaped in templates, so to get
 an actual double quote (`"`) you have to write `\"`.
 
@@ -139,7 +150,7 @@
 problem for `HTML` because [quoting attribute values is
 optional and double quotes and single quotes are
 interchangeable](
-https://html.spec.whatwg.org/multipage/syntax.html#attributes-2).
+//html.spec.whatwg.org/multipage/syntax.html#attributes-2).
 We recommend not quoting attribute values and using single quotes (`'`)
 in special cases.
 
@@ -172,10 +183,14 @@
 Customization is done by editing the template (`*.upp*`) files in your
 `mkws` project, the ones you create yourself in the `.` directory,
 the themes files in `./share`, `./share/l.upphtml`, `./share/s.uppcss`
-and `./share/sitemap.uppxml`, and the main generating script in
-`./bin/mkws`. You can also install additional utilities in the `./bin`
-directory to enable new functionality.
+and `./share/sitemap.uppxml`. You can also install additional utilities in the `./bin`
+directory to enable new functionality. To customize the generation process, copy
+the `mkws` script to your web site's directory and edit in place.
 
+	
+	mkdir -p ~/src/example.com/bin
+	cp ~/bin/mkws ~/src/example.com/bin
+
 Below are a few solutions to common problems.
 
 ### How to output in a separate directory
@@ -183,17 +198,16 @@
 A common practice static site generators use is to output the generated
 files in a separate directory, like `out` or `public`. `mkws` is designed
 to output its files in the current directory, along with the sources,
-it does hoewever have an option to specify to source path. So to
+it does however have an option to specify to source path. So to
 output in a different directory than the sources one, you could do in
 your `.` directory:
 
 	mkdir htdocs
 	cd htdocs
-	../bin/mkws https://example.com ../
+	../bin/mkws //example.com ../
 
 However, we do recommend distributing the `.upp*` files so other can
-people can read and learn from your code, like
-[https://mkws.sh](https://mkws.sh) does at the bottom of the page.
+people can read and learn from your code, and preferably link to them.
 
 ### How to preview your website
 
@@ -204,11 +218,20 @@
 
 
 and preview your site. `mkws` doesn't include a server by default,
-you can use any server you prefer, however we do provide the sources to
-a small server in Go: [https.go](https://mkws.sh/https/https.go).
-To install, in your web site's directory, do:
+you can use any server you prefer, however we do provide a small
+server written in Go: [https.go](//mkws.sh/https/https.go).
+You can either compile the source or download a statically linked
+binary for Linux: [https](//mkws.sh/https/https).
+To install, in your web site's directory, on a Linux machine, in a
+terminal, do:
 
-	curl -so https.go https://mkws.sh/https/https.go
+	curl -so bin/https //mkws.sh/https/https
+	chmod +x bin/https
+	./bin/https
+
+If you prefer compiling the sources:
+
+	curl -so https.go //mkws.sh/https/https.go
 	go build -o bin/https https.go
 	./bin/https
 
@@ -216,7 +239,7 @@
 preview your website.
 
 The server runs on port `9000` by default and uses the current directory
-as its root directory. It outputs a log to `stdout` in [Common Log Format](https://en.wikipedia.org/wiki/Common_Log_Format).
+as its root directory. It outputs a log to `stdout` in [Common Log Format](//en.wikipedia.org/wiki/Common_Log_Format).
 
 ### How to live reload
 
@@ -226,10 +249,10 @@
 
 Assuming you installed our web server following the previous
 instructions, the recommended way to do this with `mkws` is to either
-install or compile [entr](https://eradman.com/entrproject/), get
-[live.js](https://livejs.com/), in your web site's directory, do:
+install or compile [entr](//eradman.com/entrproject/), get
+[live.js](//livejs.com/), in your web site's directory, do:
 
-	curl -so l.js https://livejs.com/live.js
+	curl -so l.js //livejs.com/live.js
 
 Edit `share/l.upphtml` by adding:
 
@@ -256,7 +279,7 @@
 		(
 		echo ./bin/mkws
 		find . -type f -name '*.upp*'
-		) | entr sh -c 'bin/mkws https://example.com'
+		) | entr sh -c 'bin/mkws //example.com'
 	EOF
 	chmod +x bin/d
 
@@ -287,7 +310,7 @@
 
 Then, regenerate your site using the `mkws` command:
 
-        ./bin/mkws https://example.com
+        ./bin/mkws //example.com
 
 ### How to add custom titles (or `meta` tags) for each page
 
@@ -326,12 +349,12 @@
 
 Then, regenerate your site using the `mkws` command:
 
-	./bin/mkws https://example.com
+	./bin/mkws //example.com
 
 ### How to render `Markdown`
 
 Rendering `Markdown` is not at hard at all. Our favorite CLI tool for
-rendering `Markdown` is [`smu`](https://github.com/Gottox/smu). You'll
+rendering `Markdown` is [`smu`](//github.com/Gottox/smu). You'll
 have to download it and install it on your system either via source or
 your operating systems's package manager. In order to use it, just add:
 
@@ -340,10 +363,10 @@
 	#!
 
 to any of your `*.upphtml` files or create a new `*.upphtml` files
-containing just the above code. Other `Markdown` renderders include
-[cmark](https://github.com/commonmark/cmark),
-[lowdown](https://github.com/kristapsdz/lowdown)
-[Orc](https://github.com/Orc/discount).
+containing just the above code. Other `Markdown` renderers include
+[cmark](//github.com/commonmark/cmark),
+[lowdown](//github.com/kristapsdz/lowdown)
+[discount](//github.com/Orc/discount).
 
 Future versions of `mkws` may allow rendering `Markdown` directly from
 source, without creating an extra `*.upphtml` file.
@@ -374,14 +397,14 @@
     Holds the static site generator's binaries, they're used to generate
     the static site.
         * `./bin/lmt`
-        Small utility part of [`lts`](https://mkws.sh/lts.html) for
+        Small utility part of [`lts`](//mkws.sh/lts.html) for
         printing a file's last modification time used to generate
         timestamps.
         * `./bin/mkws`
         The _main_ script, the actual static site generator, when called
         from the command line via `./bin/mkws <url>`, it scans the `.`
         root directory for `*.upptml` files, `mkws`'s template files,
-        preprocesses them via [`pp`](https://mkws.sh/pp.html) and
+        preprocesses them via [`pp`](//mkws.sh/pp.html) and
         renders them inside the `share/l.upphtml` layout file outputing
         an `HTML` file for each one. `index.upphtml` is transformed to
         `index.html`, `docs.upphtml` is transformed to `docs.html`,
@@ -389,7 +412,7 @@
         `share/s.uppcss` and the `sitemap.xml` file from
         `share/sitemap.uppxml`.
         * `./bin/pp`
-        The [`pp`](https://mkws.sh/pp.html) preprocessor, it allows
+        The [`pp`](//mkws.sh/pp.html) preprocessor, it allows
         nesting `sh` code in any text file. It it used by the _main_
         `./bin/mkws` script to preprocess any `.upp*` file.
     * `./share`
@@ -430,6 +453,6 @@
       `man` pages
     * `./share/s.uppcss`
       `CSS` template. It's also processed via
-      [`pp`](https://mkws.sh/pp.html) so it's scriptable via `sh` code.
+      [`pp`](//mkws.sh/pp.html) so it's scriptable via `sh` code.
     * `./share/sitemap.uppxml`
 `sitemap.xml` template.
diff -urP mkws/4.0.16/mkws/mkws mkws/4.0.17/mkws/mkws
--- mkws/4.0.16/mkws/mkws	Wed Jan 26 00:29:04 2022
+++ mkws/4.0.17/mkws/mkws	Mon Sep 26 18:15:46 2022
@@ -7,9 +7,9 @@
 
 test $# -lt 1 && usage
 
-export src=${2:-.}
-export share=${MKWSTHEMEDIR:-"$src"/share}
-export LANG=${LANG:-en_US.UTF-8}
+export src="${2:-.}"
+export share="${MKWSTHEMEDIR:-$src/share}"
+export LANG="${LANG:-en_US.UTF-8}"
 
 if ! test -f "$src"/index.upphtml
 then