August 9, 2026
Every build now carries a working reading experience out of the box — nothing in
settings.json to turn on.
Search, with a shortcut
A search box in the top bar matches a query's terms against every page's title, headings,
and body. Ctrl+K (Cmd+K on macOS) jumps to it from anywhere on the page. See
What a reader gets.
The current page and section, marked
The sidebar entry for the page you're reading is highlighted, and — on a page long enough to have its own contents list — so is the section currently in view, updating as you scroll.
Dark and light, remembered
A toggle in the top bar lets a reader override the system's dark/light setting and keeps that choice for their next visit. Without one, pages still follow the system setting exactly as before.
Continuing to the next page
Every page's foot now carries prev/next cards linking to its neighbors in the sidebar's own order, alongside the backlinks that were already there.
A full-screen menu on narrow screens
Opening the sidebar below a page's own width now covers the screen with the full navigation, rather than pushing the page's content down — and no longer leaves an empty band behind when closed.
One highlighting style for every code fence
A fence naming a language nothing can resolve, or naming none at all, now renders with the same background and layout as a highlighted block — plain text rather than a block that looks broken. See Code and math.
Upgraded to canopy 0.6.0
All six changes above ship from canopy's rendering — canopy-page only carries the search index and the client-side script that makes search and the theme toggle interactive. See canopy's changelog for the underlying markup and CSS.
Diagrams, rendered at build time
A new rehypePlugins setting names rehype plugins to run on every page, so markdown that
needs more than CommonMark and GFM has somewhere to go. Diagrams
shows what it enables: a declart fence and a
mermaid fence, both rendered to inline SVG when this site was
built — not screenshots, not client-side rendering. See
the settings reference for the
field itself.
Ships from canopy 0.7.0's fixed rehype extension point. See canopy's changelog for where in the pipeline it runs and why.