A sidebar of rows, and metadata for search and sharing
A sidebar built from rows, not bare text
Every sidebar entry — a page's own link or a section's whole disclosure — now shares one
padding, a hover surface, and a keyboard focus ring, instead of plain text with a color change
on hover. A section's chevron moved to the trailing edge of its row, so a page and a section at
the same depth line up on one left edge instead of two. Nested sections carry a thin guide line
under their parent. Applies automatically — no settings.json field changed.
What a page tells a search engine
A page's own description: in its frontmatter now fills that page's <meta name="description">
and its Open Graph summary, rather than every page on a site repeating the one description
settings.json gives the whole site. See Writing pages.
Once siteUrl is set, every page also carries a
canonical URL, an og:url, and the same address sitemap.xml already lists it under — the two
can no longer disagree. check now warns, by name, about any page with no description: of its
own once siteUrl is set: a page like that still builds, it just shows a search result no more
specific than the whole site's.
A preview image and other language editions
previewImage names the image link previews show
for a page with no image: of its own. alternates
names a site's other language editions by their own siteUrls — each page then points readers
and search engines at its counterpart in every edition, its own included, both in <head> and
in sitemap.xml.
When a page last changed
sitemap.xml entries now carry <lastmod>. A page's own updated: frontmatter date wins when
it names one; otherwise it is the last git commit date of that page's source file. A page with
no source to check, or one git has no record of, is written without the date rather than with a
guessed one — and on a shallow checkout, where an untouched page would falsely report the
checkout's own boundary date, the whole sitemap is written without <lastmod> and the build says
why.