The PageMeta interface in app.d.ts defines the metadata structure for all pages. It currently supports title, date, authors, tags, sort order, cover image, and todo state. This task is about extending it with additional fields to support richer page metadata.

Current Fields

  • title — page title (required)
  • menuTitle — alternative title for navigation menus
  • date — publication date in DD-MM-YYYY format
  • updated — last updated date
  • authors — author tags or full Author objects
  • tags — content tags
  • sortOrder — numeric sort order for listings
  • cover — cover image
  • state — todo state (done, new, in_progress)

Candidate Fields

  • description — SEO meta description, currently only passed to Publication
  • draft — boolean to mark unpublished pages
  • featured — boolean or number for featured/pinned content
  • readingTime — estimated reading time override
  • canonical — canonical URL for cross-posted content
  • noindex — exclude page from search engines
  • lang — page language if different from site default
  • category — broader content category beyond tags

Tasks

  • Decide which fields to add to PageMeta
  • Update the interface in app.d.ts
  • Update components that consume PageMeta to use new fields
  • Update existing pages if needed
  • Verify type checking passes with pnpm check

Page metadata

Richer metadata for pages

A static site template built with SvelteKit.

Sveleton, 2025