You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Share images. An image key in a post's front matter, or in blogin.json as
the default for every other page, makes head-meta write og:image as an
absolute URL under base-url, pointing at the fingerprinted name when fingerprint is on. og:image:width and og:image:height are read from the
file's PNG, JPEG, GIF, or WebP header, and twitter:card becomes summary_large_image. The build warns about an image it cannot find or
measure.
On post pages, head-meta writes article:published_time from date, article:modified_time from a new updated front-matter key, and one article:tag per tag.
JSON-LD structured data: a BlogPosting on each post page and a WebSite on
the front page.
The sitemap gives each post a <lastmod>, from updated or else date.
head-meta links each configured site-wide feed with <link rel="alternate">.
noindex: the 404 page, listing pages after the first, and any post with noindex: true carry a robots noindex tag and are left out of the sitemap.
A twitter key in blogin.json, written as twitter:site and twitter:creator.
Fixed
A long run of operators in a template expression, such as 1 + 1 + 1 ...
thousands of terms long, overflowed the stack while it was evaluated. A chain
is now measured as it is parsed and refused past the same 64-level limit that
parentheses already had, with a "nested too deeply" error.
A section's layout in blogin.json was read and then ignored, so its posts
rendered through show.haml. They now render through the named layout, after
a post's own front-matter layout and before show.haml.
The scaffolded show.haml wrote the date line as an expression string, which
does not interpolate, so every post on a new site showed #{date} · #{reading-time} min read. It is HAML text now and shows the date
and reading time.
Rendering threads now get an 8 MiB stack on every platform. macOS gives a
new thread 512 KiB, which an expression nested to the evaluator's limit could
overflow in a sanitizer build.
Testing
scripts/test.sh runs one stage at a time and stops at the first stage that
fails. That stage's output is printed and kept in build/test-logs/, along
with every other stage's. --serial is gone, and -j sets the cores each
stage gets.
A stage now stops at its first failing command. Before, bash ignored set -e
inside the stage, so a failed build went on to run the specs against the
previous binary.
Dependencies
The Debian base image of the build container moves from 34cd9e9 to f324c7f.
The container build retries the apt.llvm.org key fetch for four minutes
instead of about 50 seconds.
codecov/codecov-action moves to 7.1.1, and the CodeQL actions to 4.38.0.