Files
3031023-xyz-public/docs/content-model.md
T

40 lines
2.0 KiB
Markdown

# Static site content model
Each hosted site has a validated `sites/<key>/site.json`. It owns its brand
fallback/logo, SEO image, navigation, page content, contact information, and
whether a physical-address map is displayed. Shared Astro components render
that data without a per-site code fork.
Current reusable primitives include the base SEO layout, header/footer,
full-page hero, section heading, CTA band, review cards, Markdown-backed FAQ
accordions, and an optional location map. A real logo can be provided as
`/images/<safe-name>.svg` or image asset; until then the configured short mark
and shared favicon are used.
Phase 6 adds two validated Markdown collections:
- `sites/blog/content/posts/*.md` produces the journal listing and individual
`/posts/<slug>/` pages on `blog.3031023.xyz`.
- `sites/www/content/faq/*.md` produces the FAQ section on the primary-site
homepage.
Both collections require frontmatter and support `draft: true`. Draft entries
are excluded from the rendered pages and sitemap. The internal Decap CMS now
edits these collections through the protected `cms` staging branch; client and
public editing remain disabled.
Journal `pubDate` and optional `updatedDate` fields use Decap's supported
`datetime` control in date-only UTC mode. New posts default `pubDate` to the
current UTC date. Repository verification rejects the unsupported `date`
widget so the missing-control failure cannot silently return.
CMS images must live in the flat `public/images/uploads/` directory and be
referenced with descriptive alt text where rendered. Approved source rasters
may be at most 25 MiB; each build produces a metadata-free public copy no
larger than 1920 pixels or 500 KiB. The build rejects malformed site JSON,
disallowed image signatures, nested upload paths, and oversized sources.
Each selected build also generates `sitemap.xml` and `robots.txt`. Preview
builds disallow indexing; production workflows set `DEPLOY_ENV=production` to
publish crawlable robots rules and the sitemap URL.