29 lines
1.2 KiB
Common Lisp
29 lines
1.2 KiB
Common Lisp
(defpackage #:website/renderer
|
|
(:use #:cl
|
|
#:hsx
|
|
#:jingle)
|
|
(:import-from #:hsx/element
|
|
#:element)
|
|
(:import-from #:website/components/metadata
|
|
#:~metadata)
|
|
(:import-from #:website/components/scripts
|
|
#:~scripts)
|
|
(:import-from #:website/components/layout
|
|
#:~layout))
|
|
(in-package #:website/renderer)
|
|
|
|
(defmethod jingle:process-response :around ((app jingle:app) result)
|
|
(set-response-header :content-type "text/html; charset=utf-8")
|
|
(when (eq (request-method *request*) :get)
|
|
(set-response-header :cache-control "public, max-age=60"))
|
|
(call-next-method app
|
|
(render-to-string
|
|
(hsx (html :lang "ja"
|
|
(head
|
|
(~metadata :metadata (context :metadata))
|
|
(~scripts))
|
|
(body
|
|
:hx-ext "head-support, response-targets, preload"
|
|
:hx-boost "true" :hx-swap "transition:true"
|
|
:hx-target-404 "body" :hx-target-5* "body"
|
|
(~layout result)))))))
|