Amend
This commit is contained in:
parent
b6b84cb09d
commit
01e3911757
2 changed files with 15 additions and 15 deletions
src
|
@ -2,7 +2,8 @@
|
||||||
(:use #:cl
|
(:use #:cl
|
||||||
#:hsx
|
#:hsx
|
||||||
#:trivia)
|
#:trivia)
|
||||||
(:import-from :jingle)
|
(:import-from #:jingle
|
||||||
|
#:set-response-header)
|
||||||
(:import-from #:hsx/element
|
(:import-from #:hsx/element
|
||||||
#:element)
|
#:element)
|
||||||
(:import-from #:hp/env
|
(:import-from #:hp/env
|
||||||
|
@ -10,9 +11,7 @@
|
||||||
(in-package #:hp/renderer)
|
(in-package #:hp/renderer)
|
||||||
|
|
||||||
(defun bust-cache (url)
|
(defun bust-cache (url)
|
||||||
(format nil "~a?v=~a" url (if (string= (hp-env) "dev")
|
(format nil "~a?v=~a" url #.(get-universal-time)))
|
||||||
(get-universal-time)
|
|
||||||
#.(get-universal-time))))
|
|
||||||
|
|
||||||
(defparameter *metadata-template*
|
(defparameter *metadata-template*
|
||||||
(list :title (lambda (title)
|
(list :title (lambda (title)
|
||||||
|
@ -26,7 +25,7 @@
|
||||||
|
|
||||||
(defun complete-metadata (metadata)
|
(defun complete-metadata (metadata)
|
||||||
(loop
|
(loop
|
||||||
:for (key template) :on *metadata-template* by #'cddr
|
:for (key template) :on *metadata-template* :by #'cddr
|
||||||
:for value := (getf metadata key)
|
:for value := (getf metadata key)
|
||||||
:append (list key (if (functionp template)
|
:append (list key (if (functionp template)
|
||||||
(funcall template value)
|
(funcall template value)
|
||||||
|
@ -72,17 +71,17 @@
|
||||||
children)))))
|
children)))))
|
||||||
|
|
||||||
(defmethod jingle:process-response ((app jingle:app) result)
|
(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")
|
(when (string= (hp-env) "dev")
|
||||||
(jingle:set-response-header :cache-control "no-store, no-cache, must-revalidate")
|
(set-response-header :cache-control "no-store, no-cache, must-revalidate")
|
||||||
(jingle:set-response-header :pragma "no-cache")
|
(set-response-header :pragma "no-cache")
|
||||||
(jingle:set-response-header :expires "0"))
|
(set-response-header :expires "0"))
|
||||||
(call-next-method app
|
(call-next-method app
|
||||||
(hsx:render-to-string
|
(hsx:render-to-string
|
||||||
(match result
|
(match result
|
||||||
((guard (or (list element metadata)
|
((guard (or (list page metadata)
|
||||||
element)
|
page)
|
||||||
(typep element 'element))
|
(typep page 'element))
|
||||||
(~document (complete-metadata metadata)
|
(~document (complete-metadata metadata)
|
||||||
element))
|
page))
|
||||||
(_ (error "Invalid response form"))))))
|
(_ (error "Invalid response form"))))))
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
(defpackage #:hp/routes/not-found
|
(defpackage #:hp/routes/not-found
|
||||||
(:use #:cl
|
(:use #:cl
|
||||||
#:hsx)
|
#:hsx)
|
||||||
(:import-from :jingle)
|
(:import-from #:jingle
|
||||||
|
#:set-response-status)
|
||||||
(:export #:handle-not-found))
|
(:export #:handle-not-found))
|
||||||
(in-package #:hp/routes/not-found)
|
(in-package #:hp/routes/not-found)
|
||||||
|
|
||||||
|
@ -18,5 +19,5 @@
|
||||||
"Back to TOP"))))
|
"Back to TOP"))))
|
||||||
|
|
||||||
(defun handle-not-found ()
|
(defun handle-not-found ()
|
||||||
(jingle:set-response-status :not-found)
|
(set-response-status :not-found)
|
||||||
(list (~page) *metadata*))
|
(list (~page) *metadata*))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue