Pipeline smoke test
This post exists to prove the pipeline works end to end. If it renders correctly, every mechanism in §8 of the architecture doc is live. Delete it once real content exists.
Plain markdown still behaves
Ordinary bold, italic, inline code, and a link to the Astro
docs which should pick up the external-link marker
via the a override.
- Unordered lists
- Render normally
- With no special handling
Blockquotes pass through untouched.
Math renders at build time
Inline math like sits in the paragraph flow. Block math gets its own line:
Zero JavaScript is shipped for either — remark-math and rehype-katex do the
work during the build, and only a stylesheet reaches the browser.
Code blocks are dual-themed
// Shiki emits CSS variables for both themes, so this follows the
// theme switch with no client-side highlighting.
export function derive(entry: Entry, collection: ContentCollection) {
const slug = entry.id
return { slug, uri: `/${collection}/${slug}` }
}
Named components need no import
Element overrides apply to plain markdown
The image below uses ordinary markdown syntax, but renders through
ZoomableImage. Adding pan and zoom later changes one component file — this
post is never edited.

Tables route through ScrollableTable, so wide ones scroll inside their own
container instead of breaking the page:
| Mechanism | Where it hooks | Runtime cost |
|---|---|---|
| Shiki | build | 0 KB |
| KaTeX | build | 0 KB (CSS only) |
| Override map | render | 0 KB |
| ECharts island | client | ~100 KB gz, on scroll |
An interactive island, mid-document
Everything above this point shipped zero JavaScript. The chart below is the first thing on the page that costs anything, and it only loads when you scroll to it.
Try switching the theme with the chart on screen. It should recolour rather than keep light-mode axes — that is the D11 failure mode the token-reading code exists to prevent.
Prose continues afterwards
And markdown resumes as if nothing happened, which is the entire point of choosing MDX.