Fix time to read is marked done, but no page on production shows a reading time. The pipeline has a unit mismatch:

  • PageMeta.readingTime is documented as "override in minutes"
  • getPageInfo() returns size: meta.readingTime ?? 0
  • ReadingTime.svelte computes Math.ceil(info.size / 200), treating it as words, and hides itself when size is 0 — which it always is, because no page sets readingTime
  • renderBlogPage() computes a real wordCount via cheerio, but it only reaches the feed, not info

Tasks

  • Decide the unit: expose info.wordCount (from the renderer) and info.readingTime (minutes, override or derived)
  • Render minutes directly in ReadingTime.svelte
  • Intl.DurationFormat is only Baseline 2025; add a plain fallback string for older engines
  • Add a unit test for the minutes calculation

Minutes that mean minutes

One unit end to end

A static site template built with SvelteKit.

Sveleton, 2025