Improve view
This commit is contained in:
parent
0952cb2e13
commit
cf691411d7
7 changed files with 39 additions and 20 deletions
src
|
@ -1,10 +1,8 @@
|
||||||
(defpackage #:hp/view/renderer
|
(defpackage #:hp/components/document
|
||||||
(:use #:cl)
|
(:use #:cl)
|
||||||
(:local-nicknames (#:jg #:jingle))
|
|
||||||
(:local-nicknames (#:pi #:piccolo))
|
(:local-nicknames (#:pi #:piccolo))
|
||||||
(:export #:render
|
(:export #:document))
|
||||||
#:partial-render))
|
(in-package #:hp/components/document)
|
||||||
(in-package #:hp/view/renderer)
|
|
||||||
|
|
||||||
(pi:define-element document (title description)
|
(pi:define-element document (title description)
|
||||||
(pi:h
|
(pi:h
|
||||||
|
@ -24,15 +22,4 @@
|
||||||
(meta
|
(meta
|
||||||
:name "description"
|
:name "description"
|
||||||
:content (or description "pakuの個人サイト")))
|
:content (or description "pakuの個人サイト")))
|
||||||
(body :hx-ext "head-support"
|
pi:children)))
|
||||||
(main pi:children)))))
|
|
||||||
|
|
||||||
(defun render (page &key status metadata)
|
|
||||||
(jg:with-html-response
|
|
||||||
(and status (jg:set-response-status status))
|
|
||||||
(pi:elem-str (document metadata page))))
|
|
||||||
|
|
||||||
(defun partial-render (component &key status)
|
|
||||||
(jg:with-html-response
|
|
||||||
(and status (jg:set-response-status status))
|
|
||||||
(pi:elem-str component)))
|
|
13
src/components/layout.lisp
Normal file
13
src/components/layout.lisp
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
(defpackage #:hp/components/layout
|
||||||
|
(:use #:cl)
|
||||||
|
(:local-nicknames (#:pi #:piccolo))
|
||||||
|
(:export #:layout))
|
||||||
|
(in-package #:hp/components/layout)
|
||||||
|
|
||||||
|
(pi:define-element layout ()
|
||||||
|
(pi:h
|
||||||
|
(body :hx-ext "head-support"
|
||||||
|
; header
|
||||||
|
(main pi:children)
|
||||||
|
; footer
|
||||||
|
)))
|
|
@ -1,7 +1,7 @@
|
||||||
(defpackage #:hp/routes/about
|
(defpackage #:hp/routes/about
|
||||||
(:use #:cl)
|
(:use #:cl)
|
||||||
(:local-nicknames (#:pi #:piccolo))
|
(:local-nicknames (#:pi #:piccolo))
|
||||||
(:local-nicknames (#:view #:hp/view/*))
|
(:local-nicknames (#:view #:hp/view))
|
||||||
(:export #:handle-get))
|
(:export #:handle-get))
|
||||||
(in-package #:hp/routes/about)
|
(in-package #:hp/routes/about)
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
(defpackage #:hp/routes/index
|
(defpackage #:hp/routes/index
|
||||||
(:use #:cl)
|
(:use #:cl)
|
||||||
(:local-nicknames (#:pi #:piccolo))
|
(:local-nicknames (#:pi #:piccolo))
|
||||||
(:local-nicknames (#:view #:hp/view/*))
|
(:local-nicknames (#:view #:hp/view))
|
||||||
(:export #:handle-get))
|
(:export #:handle-get))
|
||||||
(in-package #:hp/routes/index)
|
(in-package #:hp/routes/index)
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
(:use #:cl)
|
(:use #:cl)
|
||||||
(:local-nicknames (#:jg #:jingle))
|
(:local-nicknames (#:jg #:jingle))
|
||||||
(:local-nicknames (#:pi #:piccolo))
|
(:local-nicknames (#:pi #:piccolo))
|
||||||
(:local-nicknames (#:view #:hp/view/*))
|
(:local-nicknames (#:view #:hp/view))
|
||||||
(:export #:handle-not-found))
|
(:export #:handle-not-found))
|
||||||
(in-package #:hp/routes/not-found)
|
(in-package #:hp/routes/not-found)
|
||||||
|
|
||||||
|
|
19
src/view.lisp
Normal file
19
src/view.lisp
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
(defpackage #:hp/view
|
||||||
|
(:use #:cl)
|
||||||
|
(:local-nicknames (#:jg #:jingle))
|
||||||
|
(:local-nicknames (#:pi #:piccolo))
|
||||||
|
(:local-nicknames (#:cmp #:hp/components/*))
|
||||||
|
(:export #:render
|
||||||
|
#:partial-render))
|
||||||
|
(in-package #:hp/view)
|
||||||
|
|
||||||
|
(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)))))
|
||||||
|
|
||||||
|
(defun partial-render (component &key status)
|
||||||
|
(jg:with-html-response
|
||||||
|
(and status (jg:set-response-status status))
|
||||||
|
(pi:elem-str component)))
|
Loading…
Add table
Add a link
Reference in a new issue