- Install @sanity/client + @portabletext/to-html - studio/ — Sanity v3 project with post schema (title, slug, date, category, summary, cover image with hotspot, Portable Text body). Run with `cd studio && npm install && sanity dev` after setting SANITY_STUDIO_PROJECT_ID. - src/lib/sanity.ts — typed client, GROQ queries, Portable Text → HTML conversion - src/lib/news.ts — adds getArticles() / getArticle() async functions that prefer Sanity when SANITY_PROJECT_ID is set; fall back to local markdown otherwise - events/index.astro, events/[slug].astro, events/page/[page].astro — switch to async getArticles()/getArticle(); [slug].astro drops getStaticPaths() in favour of SSR request-time fetch with redirect-on-not-found - .env.example — documents SANITY_PROJECT_ID / SANITY_DATASET / SANITY_API_TOKEN Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
14 lines
701 B
Text
14 lines
701 B
Text
# ── Sanity CMS ───────────────────────────────────────────────────────────────
|
|
# Get these values from https://www.sanity.io/manage after creating a project.
|
|
# Without SANITY_PROJECT_ID the site falls back to the local markdown files
|
|
# in src/content/news/.
|
|
|
|
# Your Sanity project ID (required to enable Sanity)
|
|
SANITY_PROJECT_ID=
|
|
|
|
# Dataset name — "production" is the default created by `sanity init`
|
|
SANITY_DATASET=production
|
|
|
|
# Read token — only needed for draft/preview content.
|
|
# Leave blank to serve published content without authentication.
|
|
SANITY_API_TOKEN=
|