diff --git a/src/app.lisp b/src/app.lisp index aa59dc6..ad8cdb7 100644 --- a/src/app.lisp +++ b/src/app.lisp @@ -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 diff --git a/src/components/header.lisp b/src/components/header.lisp index 97da0cd..9a65038 100644 --- a/src/components/header.lisp +++ b/src/components/header.lisp @@ -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) diff --git a/src/components/metadata.lisp b/src/components/metadata.lisp index f95e873..63bbbd9 100644 --- a/src/components/metadata.lisp +++ b/src/components/metadata.lisp @@ -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)) diff --git a/src/renderer.lisp b/src/renderer.lisp index 987e99b..c153a49 100644 --- a/src/renderer.lisp +++ b/src/renderer.lisp @@ -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))))))) diff --git a/src/routes/about.lisp b/src/routes/about.lisp index 933d554..6a59580 100644 --- a/src/routes/about.lisp +++ b/src/routes/about.lisp @@ -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)) diff --git a/src/routes/blog.lisp b/src/routes/blog.lisp index 94b33ca..c96bc3a 100644 --- a/src/routes/blog.lisp +++ b/src/routes/blog.lisp @@ -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)) diff --git a/src/routes/not-found.lisp b/src/routes/not-found.lisp index e71fb4d..9e8db35 100644 --- a/src/routes/not-found.lisp +++ b/src/routes/not-found.lisp @@ -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)) diff --git a/src/routes/work.lisp b/src/routes/work.lisp index a2744dd..94e5453 100644 --- a/src/routes/work.lisp +++ b/src/routes/work.lisp @@ -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))