Improve and format

This commit is contained in:
Akira Tempaku 2024-04-24 00:39:08 +09:00
commit b40471bde2
5 changed files with 28 additions and 36 deletions

View file

@ -13,7 +13,7 @@
(funcall ,(or parser '#'identity) ,env-val) (funcall ,(or parser '#'identity) ,env-val)
,default))))) ,default)))))
(defenv *env* "HP_ENV" :default "dev") (defenv *env* "HP_ENV" :default "dev")
(defenv *port* "HP_PORT" :default 3000 :parser #'parse-integer) (defenv *port* "HP_PORT" :default 3000 :parser #'parse-integer)
(defun dev-mode-p () (defun dev-mode-p ()

View file

@ -1,6 +1,6 @@
(defpackage #:hp/config/logger (defpackage #:hp/config/lib
(:use #:cl) (:use #:cl)
(:import-from #:log4cl)) (:import-from #:log4cl))
(in-package #:hp/config/logger) (in-package #:hp/config/lib)
(log:config :nofile) (log:config :nofile)

View file

@ -23,14 +23,14 @@
(,(if (listp files) 'mapcar 'funcall) (,(if (listp files) 'mapcar 'funcall)
(asset-path-under ,kind) ',files))) (asset-path-under ,kind) ',files)))
(defun detect-data-props (html-str data-prop-name) (defun detect-attr-vals (html attr)
(let* ((regex (format nil "(?<=~a=\")[^\"]*(?=\")" data-prop-name)) (let* ((regex (format nil "(?<=~a=\")[^\"]*(?=\")" attr))
(data-props (re:all-matches-as-strings regex html-str))) (vals (re:all-matches-as-strings regex html)))
(remove-duplicates data-props :test #'string=))) (remove-duplicates vals :test #'string=)))
(defun get-css-paths (html-str) (defun get-css-paths (html)
(mapcar (asset-path-under :css) (mapcar (asset-path-under :css)
(detect-data-props html-str "data-css"))) (detect-attr-vals html "data-css")))
(defun cmp-props (&key css js x-data) (defun cmp-props (&key css js x-data)
(append (and css `(:data-css ,css)) (append (and css `(:data-css ,css))

View file

@ -6,23 +6,18 @@
(:export #:scripts)) (:export #:scripts))
(in-package #:hp/view/components/document/scripts) (in-package #:hp/view/components/document/scripts)
(defasset *global-js* (defasset *htmx* :vendor "htmx@1.9.12.js")
:js "global.js") (defasset *htmx-exts* :htmx-ext
("alpine-morph@1.9.12.js"
"head-support@1.9.12.js"))
(defasset *htmx* (defasset *alpine* :vendor "alpine@3.13.8.js")
:vendor "htmx@1.9.12.js") (defasset *alpine-exts* :alpine-ext
("async-alpine@1.2.2.js"
"persist@3.13.8.js"
"morph@3.13.8.js"))
(defasset *htmx-extentions* (defasset *global* :js "global.js")
:htmx-ext ("alpine-morph@1.9.12.js"
"head-support@1.9.12.js"))
(defasset *alpine*
:vendor "alpine@3.13.8.js")
(defasset *alpine-extentions*
:alpine-ext ("async-alpine@1.2.2.js"
"persist@3.13.8.js"
"morph@3.13.8.js"))
(pi:define-element extentions (paths defer) (pi:define-element extentions (paths defer)
(pi:h (pi:h
@ -35,7 +30,7 @@
(pi:h (pi:h
(<> (<>
(script :src *htmx*) (script :src *htmx*)
(extentions :paths *htmx-extentions*) (extentions :paths *htmx-exts*)
(extentions :paths *alpine-extentions* :defer t) (extentions :paths *alpine-exts* :defer t)
(script :src *global-js* :defer t) (script :src *global* :defer t)
(script :src *alpine* :defer t)))) (script :src *alpine* :defer t))))

View file

@ -8,15 +8,12 @@
#:styles)) #:styles))
(in-package #:hp/view/components/document/styles) (in-package #:hp/view/components/document/styles)
(defasset *ress* (defasset *ress* :vendor "ress@5.0.2.css")
:vendor "ress@5.0.2.css") (defasset *global* :css "global.css")
(defasset *global-css*
:css "global.css")
(pi:define-element on-demand-styles () (pi:define-element on-demand-styles ()
(let* ((pi:*escape-html* nil) (let* ((html-str (let ((pi:*escape-html* nil))
(html-str (pi:elem-str pi:children)) (pi:elem-str pi:children)))
(css-paths (get-css-paths html-str))) (css-paths (get-css-paths html-str)))
(pi:h (pi:h
(<> (<>
@ -28,10 +25,10 @@
(pi:h (pi:h
(<> (<>
(link :rel "stylesheet" :type "text/css" :href *ress*) (link :rel "stylesheet" :type "text/css" :href *ress*)
(link :rel "stylesheet" :type "text/css" :href *global-css*) (link :rel "stylesheet" :type "text/css" :href *global*)
(on-demand-styles pi:children) (on-demand-styles pi:children)
(link :rel "preconnect" :href "https://fonts.googleapis.com") (link :rel "preconnect" :href "https://fonts.googleapis.com")
(link :rel "preconnect" :href "https://fonts.gstatic.com" :crossorigin t) (link :rel "preconnect" :href "https://fonts.gstatic.com" :crossorigin t)
(link (link
:rel "stylesheet" :rel "stylesheet"
:href "https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap")))) :href "https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap"))))