Add separate defpage for spec explorer route
The <slug> route param doesn't match slashes, so /language/specs/explore/<slug> needs its own defpage instead of being handled inside specs-page. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -349,20 +349,7 @@
|
|||||||
"extensions" (~spec-overview-content
|
"extensions" (~spec-overview-content
|
||||||
:spec-title "Extensions"
|
:spec-title "Extensions"
|
||||||
:spec-files (make-spec-files extension-spec-items))
|
:spec-files (make-spec-files extension-spec-items))
|
||||||
:else (cond
|
:else (let ((spec (find-spec slug)))
|
||||||
(starts-with? slug "explore/")
|
|
||||||
(let ((spec-slug (slice slug 8 (string-length slug)))
|
|
||||||
(spec (find-spec spec-slug)))
|
|
||||||
(if spec
|
|
||||||
(let ((data (spec-explorer-data
|
|
||||||
(get spec "filename")
|
|
||||||
(get spec "title")
|
|
||||||
(get spec "desc"))))
|
|
||||||
(if data
|
|
||||||
(~spec-explorer-content :data data)
|
|
||||||
(~spec-not-found :slug spec-slug)))
|
|
||||||
(~spec-not-found :slug spec-slug)))
|
|
||||||
:else (let ((spec (find-spec slug)))
|
|
||||||
(if spec
|
(if spec
|
||||||
(~spec-detail-content
|
(~spec-detail-content
|
||||||
:spec-title (get spec "title")
|
:spec-title (get spec "title")
|
||||||
@@ -372,6 +359,26 @@
|
|||||||
:spec-prose (get spec "prose"))
|
:spec-prose (get spec "prose"))
|
||||||
(~spec-not-found :slug slug))))))))
|
(~spec-not-found :slug slug))))))))
|
||||||
|
|
||||||
|
;; ---------------------------------------------------------------------------
|
||||||
|
;; Spec Explorer — structured interactive view of spec files
|
||||||
|
;; ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
(defpage specs-explore-page
|
||||||
|
:path "/language/specs/explore/<slug>"
|
||||||
|
:auth :public
|
||||||
|
:layout :sx-docs
|
||||||
|
:content (~sx-doc :path (str "/language/specs/explore/" slug)
|
||||||
|
(let ((spec (find-spec slug)))
|
||||||
|
(if spec
|
||||||
|
(let ((data (spec-explorer-data
|
||||||
|
(get spec "filename")
|
||||||
|
(get spec "title")
|
||||||
|
(get spec "desc"))))
|
||||||
|
(if data
|
||||||
|
(~spec-explorer-content :data data)
|
||||||
|
(~spec-not-found :slug slug)))
|
||||||
|
(~spec-not-found :slug slug)))))
|
||||||
|
|
||||||
;; ---------------------------------------------------------------------------
|
;; ---------------------------------------------------------------------------
|
||||||
;; Bootstrappers section
|
;; Bootstrappers section
|
||||||
;; ---------------------------------------------------------------------------
|
;; ---------------------------------------------------------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user