Link targets need to be focusable to work with VoiceOver.
Making <main> focusable causes some side-effects, like making the TAB
key go to the beginning of <main> instead of the element after the
currently-clicked region.
Also removes the annoying outline around "main" in some non-mainstream
browsers, without having to add extra CSS.
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.
Split up some verbose and repetitive templates to use nested templates.
Cache some templates that don't need to be re-built every time.
Reading time: switch "a" to "an" when followed by the number "8".
Improve whitespace alignment a bit.
- 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.
- Shrink some excessive alt text
- Remove some redundant links
- Screenreaders that split elements up aren't just on touchscreens
- Mention ChromeVox in list of screen readers
- Move TOC higher in page
- Spelling
- Drop more unused classes
- Move the end of the h-entry div up above the footer.
- Move syndicated link to Gemini capsule up into the byline so it gets
included in the now-smaller h-entry.
See https://github.com/nekr0z/static-webmentions/issues/1
- Wrap the <a> in a <span> to make the h-entry expose an author URL
(link to homepage). Useful for sending Webmentions.
- Switch from schema.org/Article to schema.org/BlogPosting
- Footer should contain date last built so people don't start scratching
their heads wondering why webmentions aren't showing up
- Add rel="nofollow ugc" to webmention links.
Statically grab and include webmentions during Hugo builds, no JS
involved. Hugo supports making web requests and parsing the resulting
JSON, so there was no need to use an external program either.