From c13a47f2c4c8d364c333d0f50686ba22891e6808 Mon Sep 17 00:00:00 2001 From: paku <paku@skyizwhite.dev> Date: Mon, 22 Apr 2024 20:17:50 +0900 Subject: [PATCH] Improve --- src/config/asset.lisp | 6 +++++- src/middlewares/assets-server.lisp | 4 ++-- src/view/components/layout/main.lisp | 3 ++- src/view/renderer.lisp | 12 +++++++++--- 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/config/asset.lisp b/src/config/asset.lisp index 153159b..3a14077 100644 --- a/src/config/asset.lisp +++ b/src/config/asset.lisp @@ -1,6 +1,7 @@ (defpackage #:hp/config/asset (:use #:cl) - (:export #:*asset-roots*)) + (:export #:*asset-roots* + #:*hx-ext*)) (in-package #:hp/config/asset) (defparameter *asset-roots* @@ -10,3 +11,6 @@ :vendor "/vendor/" :htmx-ext "/vendor/htmx-ext/" :alpine-ext "/vendor/alpine-ext/")) + +(defparameter *hx-ext* + "head-support,alpine-morph") diff --git a/src/middlewares/assets-server.lisp b/src/middlewares/assets-server.lisp index 16ee893..fe90fe2 100644 --- a/src/middlewares/assets-server.lisp +++ b/src/middlewares/assets-server.lisp @@ -5,7 +5,7 @@ (:export #:*assets-server*)) (in-package #:hp/middlewares/assets-server) -(defun exist-public-file-p (path) +(defun exist-asset-file-p (path) (let ((pathname (probe-file (concatenate 'string "assets" path)))) (and pathname (pathname-name pathname)))) @@ -14,5 +14,5 @@ (funcall *lack-middleware-static* app :path (lambda (path) - (and (exist-public-file-p path) path)) + (and (exist-asset-file-p path) path)) :root (asdf:system-relative-pathname :hp "assets/")))) diff --git a/src/view/components/layout/main.lisp b/src/view/components/layout/main.lisp index f99db4a..b318d2f 100644 --- a/src/view/components/layout/main.lisp +++ b/src/view/components/layout/main.lisp @@ -1,13 +1,14 @@ (defpackage #:hp/view/components/layout/main (:use #:cl) (:local-nicknames (#:pi #:piccolo)) + (:local-nicknames (#:cfg #:hp/config/asset)) (:export #:layout)) (in-package #:hp/view/components/layout/main) (pi:define-element layout () (pi:h (body - :hx-ext "head-support,alpine-morph" + :hx-ext cfg:*hx-ext* :x-data t :|:data-dark| "$store.darkMode.on" ; header diff --git a/src/view/renderer.lisp b/src/view/renderer.lisp index 7c441f5..ff562c3 100644 --- a/src/view/renderer.lisp +++ b/src/view/renderer.lisp @@ -2,18 +2,24 @@ (:use #:cl) (:local-nicknames (#:jg #:jingle)) (:local-nicknames (#:pi #:piccolo)) + (:local-nicknames (#:cfg #:hp/config/env)) (:local-nicknames (#:cmp #:hp/view/components/**/*)) (:export #:render #:partial-render)) (in-package #:hp/view/renderer) +(defun renderer () + (if (cfg:dev-mode-p) + #'pi:element-string + #'pi:elem-str)) + (defun render (page &key status metadata) (jg:with-html-response (if status (jg:set-response-status status)) - (pi:elem-str (cmp:document :metadata metadata - (cmp:layout page))))) + (funcall (renderer) (cmp:document :metadata metadata + (cmp:layout page))))) (defun partial-render (component &key status) (jg:with-html-response (if status (jg:set-response-status status)) - (pi:elem-str (cmp:partial-document component)))) + (funcall (renderer) (cmp:partial-document component))))