Add Bootstrappers section, essays index, specs prose, layout fixes
- New Bootstrappers top-level section with overview index and JS bootstrapper page that runs bootstrap_js.py and displays both source and generated output with live script injection (full page load, not SX navigation) - Essays section: index page with linked cards and summaries, sx-sucks moved to end of nav, removed "grand tradition" line - Specs: English prose descriptions alongside all canonical .sx specs, added Boot/CSSX/Browser spec files to architecture page - Layout: menu bar nav items wrap instead of overflow, baseline alignment between label and nav options - Homepage: added copyright line Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -214,10 +214,10 @@
|
||||
:layout (:sx-section
|
||||
:section "Essays"
|
||||
:sub-label "Essays"
|
||||
:sub-href "/essays/sx-sucks"
|
||||
:sub-nav (~section-nav :items essays-nav-items :current "sx sucks")
|
||||
:selected "sx sucks")
|
||||
:content (~essay-sx-sucks))
|
||||
:sub-href "/essays/"
|
||||
:sub-nav (~section-nav :items essays-nav-items :current "")
|
||||
:selected "")
|
||||
:content (~essays-index-content))
|
||||
|
||||
(defpage essay-page
|
||||
:path "/essays/<slug>"
|
||||
@@ -225,7 +225,7 @@
|
||||
:layout (:sx-section
|
||||
:section "Essays"
|
||||
:sub-label "Essays"
|
||||
:sub-href "/essays/sx-sucks"
|
||||
:sub-href "/essays/"
|
||||
:sub-nav (~section-nav :items essays-nav-items
|
||||
:current (find-current essays-nav-items slug))
|
||||
:selected (or (find-current essays-nav-items slug) ""))
|
||||
@@ -241,7 +241,7 @@
|
||||
"continuations" (~essay-continuations)
|
||||
"godel-escher-bach" (~essay-godel-escher-bach)
|
||||
"reflexive-web" (~essay-reflexive-web)
|
||||
:else (~essay-sx-sucks)))
|
||||
:else (~essays-index-content)))
|
||||
|
||||
;; ---------------------------------------------------------------------------
|
||||
;; Specs section
|
||||
@@ -273,6 +273,7 @@
|
||||
:spec-title "Core Language"
|
||||
:spec-files (map (fn (item)
|
||||
(dict :title (get item "title") :desc (get item "desc")
|
||||
:prose (get item "prose")
|
||||
:filename (get item "filename") :href (str "/specs/" (get item "slug"))
|
||||
:source (read-spec-file (get item "filename"))))
|
||||
core-spec-items))
|
||||
@@ -280,14 +281,56 @@
|
||||
:spec-title "Adapters & Engine"
|
||||
:spec-files (map (fn (item)
|
||||
(dict :title (get item "title") :desc (get item "desc")
|
||||
:prose (get item "prose")
|
||||
:filename (get item "filename") :href (str "/specs/" (get item "slug"))
|
||||
:source (read-spec-file (get item "filename"))))
|
||||
adapter-spec-items))
|
||||
"browser" (~spec-overview-content
|
||||
:spec-title "Browser"
|
||||
:spec-files (map (fn (item)
|
||||
(dict :title (get item "title") :desc (get item "desc")
|
||||
:prose (get item "prose")
|
||||
:filename (get item "filename") :href (str "/specs/" (get item "slug"))
|
||||
:source (read-spec-file (get item "filename"))))
|
||||
browser-spec-items))
|
||||
:else (let ((spec (find-spec slug)))
|
||||
(if spec
|
||||
(~spec-detail-content
|
||||
:spec-title (get spec "title")
|
||||
:spec-desc (get spec "desc")
|
||||
:spec-filename (get spec "filename")
|
||||
:spec-source (read-spec-file (get spec "filename")))
|
||||
:spec-source (read-spec-file (get spec "filename"))
|
||||
:spec-prose (get spec "prose"))
|
||||
(~spec-not-found :slug slug)))))
|
||||
|
||||
;; ---------------------------------------------------------------------------
|
||||
;; Bootstrappers section
|
||||
;; ---------------------------------------------------------------------------
|
||||
|
||||
(defpage bootstrappers-index
|
||||
:path "/bootstrappers/"
|
||||
:auth :public
|
||||
:layout (:sx-section
|
||||
:section "Bootstrappers"
|
||||
:sub-label "Bootstrappers"
|
||||
:sub-href "/bootstrappers/"
|
||||
:sub-nav (~section-nav :items bootstrappers-nav-items :current "Overview")
|
||||
:selected "Overview")
|
||||
:content (~bootstrappers-index-content))
|
||||
|
||||
(defpage bootstrapper-page
|
||||
:path "/bootstrappers/<slug>"
|
||||
:auth :public
|
||||
:layout (:sx-section
|
||||
:section "Bootstrappers"
|
||||
:sub-label "Bootstrappers"
|
||||
:sub-href "/bootstrappers/"
|
||||
:sub-nav (~section-nav :items bootstrappers-nav-items
|
||||
:current (find-current bootstrappers-nav-items slug))
|
||||
:selected (or (find-current bootstrappers-nav-items slug) ""))
|
||||
:data (bootstrapper-data slug)
|
||||
:content (if bootstrapper-not-found
|
||||
(~spec-not-found :slug slug)
|
||||
(~bootstrapper-js-content
|
||||
:bootstrapper-source bootstrapper-source
|
||||
:bootstrapped-output bootstrapped-output)))
|
||||
|
||||
Reference in New Issue
Block a user