Files
rose-ash/blog/sxc/pages/blog.sx
giles c243d17eeb
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 3m41s
Migrate all apps to defpage declarative page routes
Replace Python GET page handlers with declarative defpage definitions in .sx
files across all 8 apps (sx docs, orders, account, market, cart, federation,
events, blog). Each app now has sxc/pages/ with setup functions, layout
registrations, page helpers, and .sx defpage declarations.

Core infrastructure: add g I/O primitive, PageDef support for auth/layout/
data/content/filter/aside/menu slots, post_author auth level, and custom
layout registration. Remove ~1400 lines of render_*_page/render_*_oob
boilerplate. Update all endpoint references in routes, sx_components, and
templates to defpage_* naming.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 14:52:34 +00:00

99 lines
1.9 KiB
Plaintext

; Blog app defpage declarations
; Pages kept as Python: home, index, post-detail (cache_page / complex branching)
; --- New post/page editors ---
(defpage new-post
:path "/new/"
:auth :admin
:layout :blog
:content (editor-content))
(defpage new-page
:path "/new-page/"
:auth :admin
:layout :blog
:content (editor-page-content))
; --- Post admin pages (nested under /<slug>/admin/) ---
(defpage post-admin
:path "/"
:auth :admin
:layout (:post-admin :selected "admin")
:content (post-admin-content))
(defpage post-data
:path "/data/"
:auth :admin
:layout (:post-admin :selected "data")
:content (post-data-content))
(defpage post-preview
:path "/preview/"
:auth :admin
:layout (:post-admin :selected "preview")
:content (post-preview-content))
(defpage post-entries
:path "/entries/"
:auth :admin
:layout (:post-admin :selected "entries")
:content (post-entries-content))
(defpage post-settings
:path "/settings/"
:auth :post_author
:layout (:post-admin :selected "settings")
:content (post-settings-content))
(defpage post-edit
:path "/edit/"
:auth :post_author
:layout (:post-admin :selected "edit")
:content (post-edit-content))
; --- Settings pages ---
(defpage settings-home
:path "/"
:auth :admin
:layout :blog-settings
:content (settings-content))
(defpage cache-page
:path "/cache/"
:auth :admin
:layout :blog-cache
:content (cache-content))
; --- Snippets ---
(defpage snippets-page
:path "/"
:auth :login
:layout :blog-snippets
:content (snippets-content))
; --- Menu Items ---
(defpage menu-items-page
:path "/"
:auth :admin
:layout :blog-menu-items
:content (menu-items-content))
; --- Tag Groups ---
(defpage tag-groups-page
:path "/"
:auth :admin
:layout :blog-tag-groups
:content (tag-groups-content))
(defpage tag-group-edit
:path "/<int:id>/"
:auth :admin
:layout :blog-tag-group-edit
:content (tag-group-edit-content))