feat: pSEO CMS — SSG architecture with git templates + DuckDB
# Conflicts: # web/pyproject.toml
This commit is contained in:
18
CHANGELOG.md
18
CHANGELOG.md
@@ -53,6 +53,24 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
||||
(`rate_peak`, `rate_off_peak`, `avg_utilisation_pct`, `courts_typical`); adds
|
||||
`_dataSource` and `_currency` metadata keys
|
||||
|
||||
### Changed
|
||||
- **pSEO CMS: SSG architecture** — templates now live in git as `.md.jinja` files with YAML
|
||||
frontmatter (slug, data_table, url_pattern, etc.) instead of SQLite `article_templates` table;
|
||||
data comes directly from DuckDB serving tables instead of intermediary `template_data` table;
|
||||
admin template views are read-only (edit in git, preview/generate in admin)
|
||||
- **pSEO CMS: SEO pipeline** — article generation bakes canonical URLs, hreflang links (EN + DE),
|
||||
JSON-LD structured data (Article, FAQPage, BreadcrumbList), and Open Graph tags into each
|
||||
article's `seo_head` column at generation time; articles stored with `template_slug`, `language`,
|
||||
and `date_modified` columns for regeneration and freshness tracking
|
||||
|
||||
### Removed
|
||||
- `article_templates` and `template_data` SQLite tables (migration 0018) — replaced by git
|
||||
template files + direct DuckDB reads; `template_data_id` FK removed from `articles` and
|
||||
`published_scenarios` tables
|
||||
- Admin template CRUD routes (create/edit/delete) and CSV upload — replaced by read-only views
|
||||
with generate/regenerate/preview actions
|
||||
- `template_form.html` and `template_data.html` admin templates
|
||||
|
||||
### Changed
|
||||
- **Extraction: one file per source** — replaced monolithic `execute.py` with per-source
|
||||
modules (`overpass.py`, `eurostat.py`, `playtomic_tenants.py`, `playtomic_availability.py`);
|
||||
|
||||
Reference in New Issue
Block a user