diff --git a/qlfile b/qlfile index dee517c..36f308d 100644 --- a/qlfile +++ b/qlfile @@ -5,3 +5,4 @@ git hsx https://github.com/skyizwhite/hsx.git git ningle-fbr https://github.com/skyizwhite/ningle-fbr.git ql cl-ppcre ql trivial-backtrace +ql trivia diff --git a/qlfile.lock b/qlfile.lock index c82a172..fb6d3c8 100644 --- a/qlfile.lock +++ b/qlfile.lock @@ -30,3 +30,7 @@ (:class qlot/source/ql:source-ql :initargs (:%version :latest) :version "ql-2023-10-21")) +("trivia" . + (:class qlot/source/ql:source-ql + :initargs (:%version :latest) + :version "ql-2024-10-12")) diff --git a/src/renderer.lisp b/src/renderer.lisp index 05b6d19..bec6cf5 100644 --- a/src/renderer.lisp +++ b/src/renderer.lisp @@ -1,7 +1,10 @@ (defpackage #:hp/renderer (:use #:cl - #:hsx) + #:hsx + #:trivia) (:local-nicknames (#:jg #:jingle)) + (:import-from #:hsx/element + #:element) (:local-nicknames (#:env #:hp/env))) (in-package #:hp/renderer) @@ -27,11 +30,11 @@ (defmethod jg:process-response ((app jg:app) result) (jg:set-response-header :content-type "text/html; charset=utf-8") - (when (env:dev-mode-p) - (jg:set-response-header :cache-control "no-store")) (call-next-method app (hsx:render-to-string - (if (listp result) - (destructuring-bind (body metadata) result - (document metadata body)) - (document result))))) + (match result + ((guard (or (list element metadata) + element) + (typep element 'element)) + (document metadata element)) + (_ (error "Invalid response form"))))))