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