← blog

Pipeline smoke test

2 min read

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.

Blockquotes pass through untouched.

Math renders at build time

Inline math like E=mc2E = mc^2 sits in the paragraph flow. Block math gets its own line:

f^(ξ)=f(x)e2πixξdx\hat{f}(\xi) = \int_{-\infty}^{\infty} f(x)\, e^{-2\pi i x \xi}\, dx

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.

A green placeholder standing in for a real diagram

Tables route through ScrollableTable, so wide ones scroll inside their own container instead of breaking the page:

MechanismWhere it hooksRuntime cost
Shikibuild0 KB
KaTeXbuild0 KB (CSS only)
Override maprender0 KB
ECharts islandclient
~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.

Synthetic data — proves the ECharts island mounts, themes itself from CSS custom properties, and survives a theme switch.

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.