The Tor hidden service does not use TLS, so it doesn't use HTTP/2 or
HTTP/3. Therefore, it can't use Brotli; statically-compressing Brotli
content is just wasted CPU cycles.
- Make xhtml and html alternates the same (we're polygot), cutting
static-compression time in half
- Make axe-ff run on local files, reducing some overhead.
- Replace achecker flags with a config file
- Bring back webhint
- Amend check-whole-site so that it will deploy to staging if all checks
pass, and then run webhint on every staging page.
- I forgot to compress xhtml files. fix that.
- Stylistic change: remove unnecessary brace expansions
- Don't repeatedly append to a file; run commands in a different scope
and write all at once.
Move Nu HTML validator filtering into a shell script:
- Return a bad exit code if validation errors are found after filtering
- Remove null-ish values from the JSON output; the final output *should*
be an empty string, since nothing should be reported.
- Remove XHTML content-type meta header from HTML documents, reverting
back to the meta charset
- Give XHTML documents their own XHTML declaration
- Remove now-redundant meta charset from XHTML
- Since XHTML and HTML documents differ now, compress after running
xhtmlize and make xhtmlize only act on uncompressed files.
- Validate XHTML using vnu
The site now has polygot markup and can handle both XHTML5 and HTML5
parsing rules. My staging site will be XHTML but my main site will be
HTML5, just in case of parse errors.
If other tools (e.g. LightHouse) end up supporting XHTML5, I'll consider
switching the content-type to XHTML.
Make it possible to build the tilde, staging, production, and onion
sites in parallel. Lint the staging site before deploying it.
Also make these bmake-compatible so I can use bmake instead of gmake.
- Add lint using local installation of the Nu HTML Validator and some
jq-based filtering of false positives
- Move linter configs to directory, to de-clutter the repo
Increased font size to decrease chars-per-line (SC 1.4.8) and increase
tap target size.
Pad the nav links more and add some extra space between them to meet SC
2.5.5.
- Goldmark 1.4.12 switches footnotes from a <section> to a <div>; update
regexes and stylesheet to account for this.
- Goldmark 1.4.12 allows multiple footnotes with the same reference; use
that.
- Clean up templates for unminified output. Also delete an unused class.
- Switch to unminified output by default.
Visitors can see that on post update dates; I can see that in
builds.sr.ht.
This results in not having to upload every page on a trivial change. Add
the "-c" rsync flag to take advantage of that. Doing so should also
result in longer-lived cached copies, with etags and last-modified
headers.
- apple-touch-icon not needed, will be fetched from doc root
- re-order <head> elements to optimize for compression algorithm size
savings. shaved off like 15 bytes. this was a good use of my time.
ECT is more efficient than Zopfli given the same amount of time. It uses
Zopfli under the hood.
- Switch from binaries.tar.br to binaries.tar.gz
- Bring in the statically-linked ect/brotli binaries from
binaries.tar.gz
70 iterations seems to be the point at which we hit diminishing returns.
The combined size difference of all *.gz files with 70 iterations and
1000 iterations is 65 bytes.
Update the Makefile to download the old version of the site, run
static-webmentions, and collect the WebMentions to send in a json file
saved as a build artifact.
Don't send these automatically; just save them for now. Until I work out
a solution to save sent WebMentions and avoid sending duplicates, I'll
keep the sending of WebMentions manual.
For some reason this caused webhint's axe/aria test to error out with a
"Protocol error" so I disabled it. Axe tests are covered by Lighthouse
anyway.