feat(cms): U1 content model + migration scaffold for blog/news/events
Establish content/ as the source of truth for editable content and back-fill it from the existing detail pages, per U1 of the no-code CMS plan. - docs/content-model.md: front-matter schema (EN/MK/SI), body_format html-vs-markdown, content/events -> projects/ output mapping. - tools/migrate_pages_to_content.py: bs4/yaml extractor; pulls title, subtitle, category, ISO date (from ARTICLE_DATES), hero image+caption; preserves the article body PLUS trailing sibling sections (event galleries) verbatim as body_format: html. Reports unparseable pages instead of emitting half-formed files. - content/**: 51 files (17 entries x EN/MK/SI), 0 skips. - tools/tests/test_migrate_roundtrip.py: 12 characterization tests (structured fields, news-has-no-subtitle, event gallery/lightbox preserved, Cyrillic UTF-8 round-trip, every page parses). - .gitignore: ignore __pycache__/ and *.pyc. U1 is unblocked and standalone. U2 (render content -> pages) is next; U5/U6 remain blocked on Open Question Q1 (Gitea<->GitHub topology). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
6204db5f0c
commit
9ddd0f88ef
55 files changed
+4572
No files matched your search
@@ -3,3 +3,5 @@ images/original/
|
||||
.playwright-mcp/
|
||||
code_export.txt
|
||||
images/_originals/
|
||||
__pycache__/
|
||||
*.pyc
|
||||
Reference in new issue
Block a user