WIP: Editorial city copy for 83 city/record pages #39
Draft
admin_emi
wants to merge 1 commit from
worktree-city-copy-backfill into main
pull from: worktree-city-copy-backfill
merge into: Jinemi:main
Jinemi:dev
Jinemi:release
Jinemi:main
Jinemi:fix/registry-login-whitespace
Jinemi:docs/runner-vps2-decision
Jinemi:fix/lb-forwarded-proto
Jinemi:fix/parity-all-host-aware
Jinemi:feat/sync-centralis-env
Jinemi:feat/centralis-team-validation
Jinemi:fix/openbao-parity-gate
Jinemi:ops/runner-vps2
Jinemi:chore/downmerge-release-to-main
Jinemi:feat/age-recovery-quorum
Jinemi:fix/rotate-contabo-s3
Jinemi:feat/openbao-centralis-renderer
Jinemi:fix/openbao-approle-per-env
Jinemi:fix/openbao-bootstrap-2-6
Jinemi:worktree-openbao-migration
Jinemi:feat/location-bookmarks-ui
Jinemi:feat/location-bookmarks
Jinemi:feat/grade-narrative
Jinemi:fix/alert-template-empty-value
Jinemi:fix/alerting-liveness-heartbeat
Jinemi:fix/recent-current-day
Jinemi:test/wave0-safety-and-gating
Jinemi:feat/centralis-vault
Jinemi:qa/frontend-qa-batch
Jinemi:qa/dry-trace
Jinemi:qa/date-local-live
Jinemi:qa/https-origin-live
Jinemi:qa/recentday-gate
Jinemi:qa/vapid-rotation
Jinemi:qa/date-422-live
Jinemi:fix/discord-city-resolution
Jinemi:feat/agent-owns-mentions
Jinemi:ops/mail-supervision-and-alerting
Jinemi:feature/storage-backups
Jinemi:fix/geocode-nominatim-revgeo-lock
Jinemi:shell-lint
Jinemi:feat/iceberg-ops
Jinemi:fix/content-prewarm
Jinemi:fix/content-store-first
Jinemi:fix/content-token
Jinemi:feat/healthz-ip-privacy-event-cume
Jinemi:feat/geoip-approx-location
Jinemi:design/ui-event-instrumentation
Jinemi:feature/db-query-path
1 commit
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
d1ef5be859 |
Add editorial city copy for 83 city/record pages, wired through payload + templates
All checks were successful
secrets-guard / encrypted (pull_request) Successful in 6s
PR build (required check) / changes (pull_request) Successful in 12s
PR build (required check) / validate-observability (pull_request) Has been skipped
PR build (required check) / build-frontend (pull_request) Successful in 1m24s
PR build (required check) / build-backend (pull_request) Successful in 1m32s
PR build (required check) / gate (pull_request) Successful in 1s
Introduce backend/city_copy.json: original, researched per-city editorial copy (a lede, 2-4 body paragraphs, and a records-page intro), keyed by slug next to the existing Wikipedia cities_flavor.json. Covers 83 of the 90 cities that had no flavor blurb at all; each entry carries the independent sources it was written from and reviewed:false pending a human spot-check. Wire it end to end: - cities.copy(slug) loader, mirroring cities.flavor() (lazy, tolerant of a missing file so pages render fine until copy exists). - A `copy` field on the city and records content payloads. PAYLOAD_VER p2->p3 so cached content rows rebuild with the new field instead of serving the old shape. - city.html.j2 renders the editorial lede + body in place of the Wikipedia blurb, falling back to the flavor blurb (with its "via Wikipedia" credit) wherever copy isn't written yet. records.html.j2 gains a per-city intro line it never had before. Additive and backward-compatible: no API contract bump, and any slug without a copy entry keeps its existing behavior. |