Use a new branch of webmentiond that lets me pull in all webmentions for
all pages in a single JSON response
Before, Hugo would make one request to webmentiond per page to ask for
approved webmentions for that page. Sometimes, it makes two requests
because some pages used to have a different canonical location. In all,
it ended up making over 150 requests within a second or two. Webmentiond
can handle this for now, but this isn't sustainable: page count will
only increase with time. I wanted to have Hugo instead get all
webmentions for all pages in one cached request.
I recompiled webmentiond from
https://github.com/zerok/webmentiond/pull/65, which updates the API to
support admin access keys. The admin API allows pulling in all
webmentions for all pages, instead of pulling them in for one page at a
time.
Doing so requires getting a bearer token, so I had to manage a new CI
secret: the password for getting a token. I get the token in a shell
script (get-token.sh) and write it to a temporary file, then have Hugo
read the token from that file. The shell script gets the password using
either the CI secret (in CI) or using my password manager (on my
workstation).
TODO: support marginalia (mentions with fragments in their targets)
Add a new "Interactions" section to my pages that contain both
Syndication and Webmentions. Make the Syndication links u-syndication.
Make both these things children of the <article> h-entry.
This allows me to update a webmention URL if it breaks or changes and
the admin didn't bother putting a re-direct in place.
I shouldn't have needed to do this. Cool URLs don't change.
- Set "Articles" and "Notes" to "CollectionPage"
- Set "About" to "AboutPage" and "ProfilePage"
Since my "About" page now has two types, I had to alter the "stype" page
property to require a full URL.
- Support an indieweb person without a hyperlink.
- Don't put a period after "Changelog" links. Causes a line-break on
many popular phone screen sizes.
- Fix use of shortcodes in some pages so authorship is parsed correctly
- Explicitly show author for each entry in a data feed, so parsers don't
get confused by reply-authors.
- CSS containment was cutting off nested list-item markers; increase
their padding to compensate
- Remove nested <details> use, it was causing problems and was probably
unnecessary
- Increase list padding so that ordered-list decimal markers have space
to fit without overflowing.
- Improve style for removing underline between h-card name and photo, so
it doesn't apply to any unnecessary elements.
- Reduce budget for document size.
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.
IBM Equal Access A11y Checker caught an <aside> without a label. Figured
this was a good opportunity to instead use the site description.
While I was at it, I expanded said site description and used it
properly.
The WCAG "label in name" SC requires visible labels to contain
accessible names, preferably by having accessible names start with
visible labels. This commit makes footnote backlinks display as a
hyperlink reading "Back" to meet this SC.
- We don't want autocomplete on the webmention form, since users should
not be entering a link multiple times.
- Not all browsers support the "required" HTML5 attribute, so add the
"aria-required" HTML attribute too.
- Adjust transcript shortcodes to also support <audio> elements.
- Add audio element shortcode based on <picture> shortcode
- Make <audio> elements match container width.