This commit is contained in:
Akira Tempaku 2025-03-29 14:48:36 +09:00
parent b6b84cb09d
commit 01e3911757
Signed by: paku
GPG key ID: 5B4E8402BCC50607
2 changed files with 15 additions and 15 deletions

View file

@ -2,7 +2,8 @@
(:use #:cl
#:hsx
#:trivia)
(:import-from :jingle)
(:import-from #:jingle
#:set-response-header)
(:import-from #:hsx/element
#:element)
(:import-from #:hp/env
@ -10,9 +11,7 @@
(in-package #:hp/renderer)
(defun bust-cache (url)
(format nil "~a?v=~a" url (if (string= (hp-env) "dev")
(get-universal-time)
#.(get-universal-time))))
(format nil "~a?v=~a" url #.(get-universal-time)))
(defparameter *metadata-template*
(list :title (lambda (title)
@ -26,7 +25,7 @@
(defun complete-metadata (metadata)
(loop
:for (key template) :on *metadata-template* by #'cddr
:for (key template) :on *metadata-template* :by #'cddr
:for value := (getf metadata key)
:append (list key (if (functionp template)
(funcall template value)
@ -72,17 +71,17 @@
children)))))
(defmethod jingle:process-response ((app jingle:app) result)
(jingle:set-response-header :content-type "text/html; charset=utf-8")
(set-response-header :content-type "text/html; charset=utf-8")
(when (string= (hp-env) "dev")
(jingle:set-response-header :cache-control "no-store, no-cache, must-revalidate")
(jingle:set-response-header :pragma "no-cache")
(jingle:set-response-header :expires "0"))
(set-response-header :cache-control "no-store, no-cache, must-revalidate")
(set-response-header :pragma "no-cache")
(set-response-header :expires "0"))
(call-next-method app
(hsx:render-to-string
(match result
((guard (or (list element metadata)
element)
(typep element 'element))
((guard (or (list page metadata)
page)
(typep page 'element))
(~document (complete-metadata metadata)
element))
page))
(_ (error "Invalid response form"))))))

View file

@ -1,7 +1,8 @@
(defpackage #:hp/routes/not-found
(:use #:cl
#:hsx)
(:import-from :jingle)
(:import-from #:jingle
#:set-response-status)
(:export #:handle-not-found))
(in-package #:hp/routes/not-found)
@ -18,5 +19,5 @@
"Back to TOP"))))
(defun handle-not-found ()
(jingle:set-response-status :not-found)
(set-response-status :not-found)
(list (~page) *metadata*))