Add metadata context
This commit is contained in:
parent
7b31bd1f18
commit
c311ddb47c
8 changed files with 34 additions and 38 deletions
|
@ -1,10 +1,6 @@
|
|||
(defpackage #:website/app
|
||||
(:use #:cl)
|
||||
(:import-from #:jingle
|
||||
#:make-app
|
||||
#:install-middleware
|
||||
#:static-path
|
||||
#:configure)
|
||||
(:use #:cl
|
||||
#:jingle)
|
||||
(:import-from #:ningle-fbr
|
||||
#:set-routes)
|
||||
(:import-from #:lack-mw
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
(defpackage #:website/components/header
|
||||
(:use #:cl
|
||||
#:hsx)
|
||||
(:import-from #:jingle
|
||||
#:request-uri)
|
||||
#:hsx
|
||||
#:jingle)
|
||||
(:export #:~header))
|
||||
(in-package #:website/components/header)
|
||||
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
(defpackage #:website/components/metadata
|
||||
(:use #:cl
|
||||
#:hsx)
|
||||
(:import-from #:jingle
|
||||
#:request-uri)
|
||||
#:hsx
|
||||
#:jingle)
|
||||
(:import-from #:website/lib/env
|
||||
#:website-url)
|
||||
(:export #:~metadata))
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
(defpackage #:website/renderer
|
||||
(:use #:cl
|
||||
#:hsx
|
||||
#:trivia)
|
||||
(:import-from #:jingle
|
||||
#:set-response-header)
|
||||
#:jingle)
|
||||
(:import-from #:hsx/element
|
||||
#:element)
|
||||
(:import-from #:website/lib/env
|
||||
|
@ -21,18 +19,14 @@
|
|||
(set-response-header :cache-control (if (string= (website-env) "dev")
|
||||
"private, no-store"
|
||||
"public, max-age=60"))
|
||||
(match result
|
||||
((guard (or (list body metadata)
|
||||
body)
|
||||
(typep body 'element))
|
||||
(call-next-method app
|
||||
(hsx:render-to-string
|
||||
(hsx (html :lang "ja"
|
||||
(head
|
||||
(~metadata :metadata metadata)
|
||||
(~scripts))
|
||||
(body
|
||||
:hx-ext "head-support, response-targets, preload, alpine-morph"
|
||||
:hx-boost "true" :hx-target-404 "body" :hx-target-5* "body"
|
||||
(~layout body)))))))
|
||||
(_ (error "Invalid response form"))))
|
||||
|
||||
(call-next-method app
|
||||
(hsx:render-to-string
|
||||
(hsx (html :lang "ja"
|
||||
(head
|
||||
(~metadata :metadata (context :metadata))
|
||||
(~scripts))
|
||||
(body
|
||||
:hx-ext "head-support, response-targets"
|
||||
:hx-boost "true" :hx-target-404 "body" :hx-target-5* "body"
|
||||
(~layout result)))))))
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
(defpackage #:website/routes/about
|
||||
(:use #:cl
|
||||
#:hsx)
|
||||
#:hsx
|
||||
#:jingle)
|
||||
(:import-from #:website/lib/cms
|
||||
#:get-about)
|
||||
(:import-from #:website/lib/time
|
||||
|
@ -18,4 +19,5 @@
|
|||
|
||||
(defun handle-get (params)
|
||||
(declare (ignore params))
|
||||
(list (~page) *metadata*))
|
||||
(setf (context :metadata) *metadata*)
|
||||
(~page))
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
(defpackage #:website/routes/blog
|
||||
(:use #:cl
|
||||
#:hsx)
|
||||
#:hsx
|
||||
#:jingle)
|
||||
(:export #:handle-get))
|
||||
(in-package :website/routes/blog)
|
||||
|
||||
|
@ -13,4 +14,5 @@
|
|||
|
||||
(defun handle-get (params)
|
||||
(declare (ignore params))
|
||||
(list (~page) *metadata*))
|
||||
(setf (context :metadata) *metadata*)
|
||||
(~page))
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
(defpackage #:website/routes/not-found
|
||||
(:use #:cl
|
||||
#:hsx)
|
||||
#:hsx
|
||||
#:jingle)
|
||||
(:export #:handle-not-found))
|
||||
(in-package #:website/routes/not-found)
|
||||
|
||||
|
@ -18,4 +19,5 @@
|
|||
"Back to TOP"))))
|
||||
|
||||
(defun handle-not-found ()
|
||||
(list (~page) *metadata*))
|
||||
(setf (context :metadata) *metadata*)
|
||||
(~page))
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
(defpackage #:website/routes/work
|
||||
(:use #:cl
|
||||
#:hsx)
|
||||
#:hsx
|
||||
#:jingle)
|
||||
(:import-from #:website/lib/cms
|
||||
#:get-work)
|
||||
(:import-from #:website/lib/time
|
||||
|
@ -18,4 +19,5 @@
|
|||
|
||||
(defun handle-get (params)
|
||||
(declare (ignore params))
|
||||
(list (~page) *metadata*))
|
||||
(setf (context :metadata) *metadata*)
|
||||
(~page))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue