Brings the /reference/ and /style/ pages and the CMS editor in line with musings, adapted to this site's own design — plus heading anchors, phrase-highlighted margin notes, a hand-drawn section break, drafts and slug overrides, and fixes so shortcodes work inside posts and the Atom feed renders correctly.
- feat:
/reference/is now musings' reference page content, adapted —reference.mdreplaced with musings' text; only sentences that described musings' own look (Docs chrome, grey desk, comment rail, browser link colour) or were wrong (--is an en dash, not an em dash) were reworded. The fourth-level heading sample now uses####(musings' source used###). Theintroline and the "not implemented" notes are gone;reference-page.njkno longer prints an intro - feat: heading anchors —
markdown-it-anchorgives every heading an id and links it to itself;{ #id }still overrides - feat:
{% marginnote "phrase" %}— the phrase is highlighted in the paragraph after the note (src/js/margin-notes.js), hover/focus links the two - feat: section break —
---/***in markdown now draws one of the hand-drawn dividers used between posts in a list (md.renderer.rules.hr), instead of a plain 1px line. Musings' page break is not carried over: it only makes sense in a paginated-document look, so the reference page's "Page break" section became "Section break" - fix:
calloutandmarginnoteshortcodes printed literally inside posts, because post bodies are rendered bymarkdownifywithout Nunjucks.markdownifynow expands them - fix: Atom feed showed literal HTML tags —
feed.njkwrapped the post body in<![CDATA[…]]>but Nunjucks also HTML-escaped it. Body now goes in<content type="html">as escaped text (the standard form). Never noticed because no posts existed - fix: feed links — heading anchors and footnote links resolved to
<site>/#id(the home page). NewfeedContentfilter unwraps heading self-links, points footnote links at the post, and swaps the SVG section break for an<hr> - feat:
/style/rebuilt in musings' structure and read fromstyles.css's:rootblock bysrc/_data/tokens.js— no more hardcoded hex/scale lists. Adds line heights, shape and layout, and the components section (badges, dividers and section break, margin note, callouts); removes the unused.styleguide-*CSS - feat: CMS editor —
drafttoggle, optionalslugoverride, field hints,label_singular, ASCII slugs - feat:
draft: trueposts are hidden from the home list, category pages, feed and sitemap in a build (publishedfilter);slugfront matter overrides the filename inposts.js - feat: admin page — Sveltia is no longer pinned to
0.211.2; it loads the latest from unpkg, as musings does. The admin is now named "OTB CMS" (login screen, tab title,application-name,apple-mobile-web-app-title); tab title pinned,noindex, nofollow, noarchive, noimageindex, theme colour and icon links - fix: About page scrolled sideways on phones — the anatomy diagram is a fixed 520px
<img>with nomax-width; it now shrinks to fit - infra: added
markdown-it-anchor;src/js/is passthrough-copied - docs: corrected the image-generation notes in APP.md/CLAUDE.md (Playwright + ImageMagick, not resvg; the OG PNG is build output, not committed) and the
URLenv var (set indeploy.yml); README layout and file map updated; FUTURE.md no longer lists the removed newsletter form or calls Playwright unused, and now tracks the unused@resvg/resvg-js/opentype.jsdependencies