Overview

Local Sites

Define sites in TypeScript

Overview

When SITE_NAME is set (or default showcase), [slug].paths.ts loads sites/{name}/index.ts. The file is transpiled with esbuild and must export { settings, pages }.

index.ts

export const showcaseSite = {
  settings,
  pages: [homePage, aboutPage, ...]
}

Or export default { settings, pages }. settings is SiteSettingsData. pages is PageData[].

settings.ts

Export settings: SiteSettingsData. Import in index.ts.

Page files

Organize pages in pages/, pages/docs/, pages/blocks/. Each file exports a PageData object. Import all pages in index.ts and add to the pages array.

Import path to types: ../../../../vitepress-template/scripts/generate-content (from pages/docs/ or pages/blocks/).

Build flow

  1. VitePress runs [slug].paths.ts to get page paths
  2. loadLocalSite(SITE_NAME) transpiles sites/{name}/index.ts with esbuild
  3. Imports the module, extracts settings and pages
  4. Writes settings.json, home.json, pages.json
  5. Generates one path per non-home page

Next: Payload CMS

Menu
In this section