Skip to content

Custom static pages CRUD (#28)#67

Merged
nwwatson merged 2 commits intomasterfrom
worktree-issue-28-custom-static-pages
Feb 24, 2026
Merged

Custom static pages CRUD (#28)#67
nwwatson merged 2 commits intomasterfrom
worktree-issue-28-custom-static-pages

Conversation

@nwwatson
Copy link
Owner

Summary

  • Adds full CRUD for custom static pages with rich text (Lexxy) editor, autosave, and admin management
  • Pages served at top-level URLs (/:slug) with catch-all route placed last to avoid conflicts
  • Published pages with show_in_navigation enabled appear dynamically in the site header
  • Migrates the hardcoded About page to a seed-data Page record; removes old about route

Changes

  • Model: Page with Sluggable, Publishable, Navigable concerns; reserved slug validation
  • Admin: Admin::PagesController with index/new/edit/create/update/destroy + JSON autosave
  • Layout: admin_page_editor layout (simplified editor without AI/preview tabs)
  • Public: PagesController#show with SEO meta tags; dynamic navigation in application layout
  • Routes: Catch-all /:slug route moved to end of routes file; admin namespace includes resources :pages
  • Sitemap: Updated to dynamically include all published pages
  • Seeds: About and Contact pages created as seed data
  • i18n: All page-related keys added to en.yml and es.yml
  • Tests: Page model tests, public controller tests, admin controller tests, fixture updates
  • Docs: CLAUDE.md and README.md updated

Testing

  • All 631 tests pass
  • Rubocop: no offenses on changed files
  • Brakeman: no warnings
  • Bundle audit / importmap audit: clean

Closes #28

Implements full CRUD for static pages with rich text editing, top-level
URL routing (/:slug), dynamic navigation menu integration, and admin
management. Pages use the same Lexxy editor as posts with a simplified
editor layout (no AI/preview). Reserved slugs prevent conflicts with
existing routes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@nwwatson nwwatson self-assigned this Feb 24, 2026
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@nwwatson nwwatson merged commit c1c1c2d into master Feb 24, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Custom static pages CRUD

1 participant