Skip to content

PageSchema

const PageSchema: ZodObject<{ blocks: ZodArray<ZodType<any, ZodTypeDef, any>, "many">; description: ZodOptional<ZodString>; path: ZodString; title: ZodString; }, "strip", ZodTypeAny, { blocks: any[]; description?: string; path: string; title: string; }, { blocks: any[]; description?: string; path: string; title: string; }>

Defined in: packages/core/src/schemas/page.schema.ts:205

Page configuration.

A page represents a single route/URL in your application. Pages contain blocks that define the content and maps.

Required:

  • path - URL path (e.g., ”/”, “/about”, “/map”)
  • title - Page title (used for browser tab and SEO)
  • blocks - Array of content/map blocks

Optional:

  • description - Meta description for SEO

Home Page

- path: "/"
title: "Home"
description: "Welcome to our mapping application"
blocks:
- type: content
content:
- h1: [{ str: "Welcome" }]
- type: map
id: home-map
config:
center: [0, 0]
zoom: 2
mapStyle: "..."

Story Page

- path: "/story"
title: "Our Story"
description: "An interactive map story"
blocks:
- type: scrollytelling
id: main-story
config: {...}
chapters: [...]

Complex Layout

- path: "/dashboard"
title: "Dashboard"
blocks:
- type: content
content:
- h1: [{ str: "Dashboard" }]
- type: mixed
layout: row
blocks:
- type: map
id: map1
config: {...}
- type: map
id: map2
config: {...}