Skip to content

Changelog

Version 1.5.0

Added

  • defineNorthwesternConfig config helper. Single function that returns a complete Astro config with integration ordering (mermaid → starlight), plugin registration, and Expressive Code. Replaces the manual defineConfig + starlight() + northwesternMermaid() wiring. New ./config package export.
  • Automatic Expressive Code line numbers. defineNorthwesternConfig injects pluginLineNumbers() and GitHub syntax themes (github-dark / github-light). No ec.config.mjs file needed. A Vite plugin separates serializable config from plugin instances so the <Code> Astro component continues to work.
  • Type declarations (.d.ts) shipped for all public exports.
  • OG images for changelog version pages with multi-line titles (e.g., “Changelog / 1.4.0”).
  • JSON-LD structured data on each page.
  • Unit test suite (Vitest) covering config.ts, expressive-code.ts, mermaid.ts, and rehype-table-scroll.ts. E2E tests moved to tests/e2e/. CI runs unit tests in a dedicated job.

Fixed

  • Replaced astro-og-canvas + canvaskit-wasm with satori + @resvg/resvg-wasm. pnpm users no longer need canvaskit-wasm as a direct dependency.
  • OG image generation logs a warning and disables when Starlight title is empty or site is not set, instead of crashing or producing broken URLs.
  • OG font buffer uses correct Uint8Array offset slicing instead of casting the full backing ArrayBuffer.
  • Larger OG text: title 48→56px, description 28→32px, logo 60→80px. Separate vertical (60px) and horizontal (220px) padding to avoid clipping.
  • Runtime config validation now catches invalid theme, Mermaid, and config-helper options with friendly errors at the public API boundary instead of failing later with cryptic behavior.
  • Rehype table scroll skips tables already inside .nu-table-scroll, preventing double-wrapping on incremental rebuilds.
  • Aside borders use solid brand colors (#5091cd, #008656, #ffc520, #ef553f) and a 3px left accent stripe instead of a translucent 1px box border. Dark mode borders match the text accent for each variant.

Changed

  • h1 keeps Noto Serif; h2h6 switched to Poppins.
  • Package exports map includes types fields pointing to dist/*.d.ts for all entry points.