"11" and "18" minute reading times now use "an" as they start with a
vowel sound but aren't qualified by "short", "somewhat long", "long", or
"very long". before, it said "a 11 minute read" but now it'll say "an 11
minute read".
- Replace getCSV with resources.Get | transform.Unmarshal. This required
moving my CSV data to the assets directory, for some reason. Ugh.
- Switch from site.LastChange to site.Lastmod.
- Stop using symlinks for template files, since those seem to have
broken.
- Force int data type for scratchpad integers since type inference seems
to have changed.
Use partialCached to avoid any perf penalty.
TODO: limit the scope I pass to them.
I noticed a teeny tiny perf improvement after doing this, probably
because now some giant data structures only need to be generated once.
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)