diff --git a/src/app.lisp b/src/app.lisp index 27e1ca4..ce84206 100644 --- a/src/app.lisp +++ b/src/app.lisp @@ -5,7 +5,7 @@ (:local-nicknames (#:fbr #:ningle-fbr)) (:local-nicknames (#:pi #:piccolo)) (:local-nicknames (#:view #:hp/view)) - (:local-nicknames (#:cmp #:hp/components/**/*)) + (:local-nicknames (#:cmp #:hp/components/*)) (:local-nicknames (#:mw #:hp/middlewares/*)) (:export #:start #:stop diff --git a/src/components/global/document.lisp b/src/components/global/document.lisp deleted file mode 100644 index 8efb0c8..0000000 --- a/src/components/global/document.lisp +++ /dev/null @@ -1,26 +0,0 @@ -(defpackage #:hp/components/global/document - (:use #:cl) - (:local-nicknames (#:pi #:piccolo)) - (:export #:document)) -(in-package #:hp/components/global/document) - -(pi:define-element document (title description) - (pi:h - (html :lang "ja" - (head - (meta :charset "UTF-8") - (script :src "/scripts/htmx.js") - (script :src "/scripts/htmx-ext/head-support.js") - (script :src "/scripts/alpine.js" :defer t) - (link :rel "stylesheet" :type "text/css" :href "/styles/ress.css") - (link :rel "stylesheet" :type "text/css" :href "/styles/global.css") - (link :rel "preconnect" :href "https://fonts.googleapis.com") - (link :rel "preconnect" :href "https://fonts.gstatic.com" :crossorigin t) - (link - :rel "stylesheet" - :href "https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap") - (title (format nil "~@[~a - ~]skyizwhite.dev" title)) - (meta - :name "description" - :content (or description "pakuの個人サイト"))) - pi:children))) diff --git a/src/components/global/layout.lisp b/src/components/global/layout.lisp deleted file mode 100644 index 4d3caa6..0000000 --- a/src/components/global/layout.lisp +++ /dev/null @@ -1,10 +0,0 @@ -(defpackage #:hp/components/global/layout - (:use #:cl) - (:local-nicknames (#:pi #:piccolo)) - (:export #:layout)) -(in-package #:hp/components/global/layout) - -(pi:define-element layout () - (pi:h - (body :hx-ext "head-support" - (main pi:children)))) diff --git a/src/components/global/not-found.lisp b/src/components/not-found.lisp similarity index 65% rename from src/components/global/not-found.lisp rename to src/components/not-found.lisp index 3ec74e9..15ab9a3 100644 --- a/src/components/global/not-found.lisp +++ b/src/components/not-found.lisp @@ -1,8 +1,8 @@ -(defpackage #:hp/components/global/not-found +(defpackage #:hp/components/not-found (:use #:cl) (:local-nicknames (#:pi #:piccolo)) (:export #:not-found-page)) -(in-package #:hp/components/global/not-found) +(in-package #:hp/components/not-found) (pi:define-element not-found-page () (pi:h diff --git a/src/view.lisp b/src/view.lisp index 2cfc1cd..31f28e7 100644 --- a/src/view.lisp +++ b/src/view.lisp @@ -2,13 +2,32 @@ (:use #:cl) (:local-nicknames (#:jg #:jingle)) (:local-nicknames (#:pi #:piccolo)) - (:local-nicknames (#:cmp #:hp/components/**/*)) (:export #:render)) (in-package #:hp/view) -(defun render (page &key metadata status) +(pi:define-element document (title description) + (pi:h + (html :lang "ja" + (head + (meta :charset "UTF-8") + (script :src "/scripts/htmx.js") + (script :src "/scripts/htmx-ext/head-support.js") + (script :src "/scripts/alpine.js" :defer t) + (link :rel "stylesheet" :type "text/css" :href "/styles/ress.css") + (link :rel "stylesheet" :type "text/css" :href "/styles/global.css") + (link :rel "preconnect" :href "https://fonts.googleapis.com") + (link :rel "preconnect" :href "https://fonts.gstatic.com" :crossorigin t) + (link + :rel "stylesheet" + :href "https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap") + (title (format nil "~@[~a - ~]skyizwhite.dev" title)) + (meta + :name "description" + :content (or description "pakuの個人サイト"))) + (body :hx-ext "head-support" + (main pi:children))))) + +(defun render (page &key status metadata) (jg:with-html-response (and status (jg:set-response-status status)) - (pi:elem-str - (cmp:document metadata - (cmp:layout page))))) + (pi:elem-str (document metadata page))))