msos/docs
popovskik 596290acf8 feat(cms): U2 render content/ into detail pages (characterization-verified)
Add tools/build_content.py: renders every content/ entry into its blog /
news / event detail page by self-templating the page's own chrome and
replacing only content-derived regions (title, article header, hero,
body, and — for new pages only — the scrollspy).

Faithful reproduction, proven against the live site:
- body_format: html fragments injected verbatim, so guide-boxes, inline
  figures and event galleries render unchanged.
- scrollspy sidebars are preserved (labels are hand-curated, shorter than
  the H2s); only generated when a page has none.
- <title> suffix derived per page, so EN/SI " - MSOS", MK " - МСОС", and
  suffix-less event titles all reproduce exactly.
- hero /images/… rewritten to the page's ../../../ depth.
- ASCII-only console output (no cp1252 crash on Windows/CI).

tools/tests/test_build_content.py: 8 characterization tests; the core one
renders all 51 pages and asserts each is semantically equivalent
(whitespace/attr-order-insensitive) to the current page — the R5
no-regression guarantee.

Does NOT overwrite the committed pages; whether generated pages are
committed vs built fresh in CI is decided in U4/U5. Run:
  python tools/build_content.py --check   # verify equivalence
  python tools/build_content.py --write    # emit pages (for U4)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-08 16:36:11 +02:00
..
plans docs: add no-code CMS implementation plan 2026-08-08 16:09:31 +02:00
GA4-ASSISTANT-REPORT.md feat(assistant): one-time disclaimer note + GA4 question-report guide 2026-08-04 01:57:55 +02:00
MK-PROOFREADING.md content(MK): apply proofreading corrections from owner + rename header menu 2026-08-04 13:13:04 +02:00
PRE-LAUNCH-CHECKLIST.md a11y: make mobile menu toggle keyboard & screen-reader accessible 2026-08-04 00:57:27 +02:00
PRE-LAUNCH-TODO.md docs: note the SEO regeneration step for new pages 2026-08-05 18:39:04 +02:00
content-model.md feat(cms): U2 render content/ into detail pages (characterization-verified) 2026-08-08 16:36:11 +02:00
geo-offsite-worklist.md GEO: FAQPage/NGO/Event schema + autonomous generation for new projects 2026-08-07 22:17:03 +02:00
get-to-know-pages-handover.md Add five 2025 event blogs (EN/SI/MK), remove placeholders 2026-07-28 15:44:23 +02:00
launch-seo-checklist.md Add article dates, brand OG image, launch SEO checklist 2026-08-02 12:38:20 +02:00
newsletter-signup.md Homepage refresh, activities redesign + newsletter rollout 2026-08-01 19:51:59 +02:00