You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Sitemap representation selection through TEQ_CMS__SITEMAP_REPRESENTATIONS: HTML (default), Markdown, or both, with every distinct eligible source language, canonical alias deduplication, and Markdown discovery independent of HTML availability (issue #33).
Optional boolean publication indexable metadata to exclude sources from generated discovery while retaining public routing.
Shared catalog representation inventory and real CLI/HTTP discovery tests with XML parsing, deterministic generation, and canonical/alternate checks.
Shared CMS 404 responses and a terminal PROCESS handler, with optional localized
host 404.html templates, a replaceable DI presentation policy, safe template data,
non-HTML Markdown/API/static errors, HEAD support, and no-store/noindex headers.
Real CLI HTTP coverage and consumer guidance for branded missing pages.
Publish root-level and nested Markdown across the public tmpl/web/ tree by default without family registration (issue #31).
Add a replaceable host DI policy for publication mode, presentation names, and static-only URL prefixes; keep deployment settings separate from route policy.
Support unlocalized neutral sources and root index publication with canonical / and localized /{locale}/ links.
Changed
Use Markdown, ordinary templates, then web/ static files, then 404; found invalid Markdown does not fall through to legacy HTML.
Deliver static exclusions and discovery files directly through the standard web static handler, terminating missing files with 404.
Retain nonempty PUBLICATION_FAMILIES as legacy compatibility mode; reject explicit site policy combined with legacy families.
Extend ordinary template-name lookup to requested, default, and unlocalized template trees.
Update context, usage documentation, and consumer skill with host policy composition and migration guidance.
Fixed
Select HTML language by explicit URL locale, then supported weighted Accept-Language, then tmpl default, including neutral .html; preserve unlocalized source priority and stable neutral Markdown, and vary caches by language.
Separate Markdown source priority from response format: explicit .md/.html overrides headers; extensionless publication URLs use Accept, then User-Agent hints, returning Markdown to agents and HTML to people with cache variation.
Use explicit .md URLs for Markdown alternates and llms.txt, including /index.md for home; include available unlocalized HTML in sitemap.xml.
Verification
Cover site-wide URL forms, exact sources, root priority, host-selected presentations, static exclusions, safety, canonical discovery, and real CLI DI policy substitution.
Upgrade guidance
Empty TEQ_CMS__PUBLICATION_FAMILIES now enables site-wide public Markdown. Keep private content outside tmpl/web/ and web/. Nonempty family settings retain legacy compatibility.
Explicit .md/.html selects the representation. Extensionless URLs negotiate through HTTP headers; human HTML language uses URL locale, then supported Accept-Language, then the tmpl default.
Regenerate discovery files with teq cms:generate. Sitemap defaults to HTML; use TEQ_CMS__SITEMAP_REPRESENTATIONS=markdown or both when required.
Validation
81 passing unit and acceptance tests, including real CLI/HTTP coverage.
Type checking, ESM validation, ADSM context validation, and npm payload verification passed.