website/src/view/renderer.lisp

26 lines
789 B
Common Lisp
Raw Normal View History

2024-04-19 22:00:46 +09:00
(defpackage #:hp/view/renderer
2024-04-19 13:04:30 +09:00
(:use #:cl)
(:local-nicknames (#:jg #:jingle))
(:local-nicknames (#:pi #:piccolo))
2024-04-22 20:17:50 +09:00
(:local-nicknames (#:cfg #:hp/config/env))
2024-04-25 16:50:08 +09:00
(:local-nicknames (#:cmp #:hp/components/**/*))
2024-04-19 13:04:30 +09:00
(:export #:render
#:partial-render))
2024-04-19 22:00:46 +09:00
(in-package #:hp/view/renderer)
2024-04-19 13:04:30 +09:00
2024-04-22 20:17:50 +09:00
(defun renderer ()
(if (cfg:dev-mode-p)
#'pi:element-string
#'pi:elem-str))
2024-04-19 13:04:30 +09:00
(defun render (page &key status metadata)
(jg:with-html-response
2024-04-20 07:45:44 +09:00
(if status (jg:set-response-status status))
2024-04-22 20:17:50 +09:00
(funcall (renderer) (cmp:document :metadata metadata
(cmp:layout page)))))
2024-04-19 13:04:30 +09:00
(defun partial-render (component &key status)
(jg:with-html-response
2024-04-20 07:45:44 +09:00
(if status (jg:set-response-status status))
2024-04-22 20:17:50 +09:00
(funcall (renderer) (cmp:partial-document component))))