Add ~article component
This commit is contained in:
parent
631d979faf
commit
c90c89a74f
3 changed files with 36 additions and 31 deletions
src
21
src/components/article.lisp
Normal file
21
src/components/article.lisp
Normal file
|
@ -0,0 +1,21 @@
|
|||
(defpackage #:website/components/article
|
||||
(:use #:cl
|
||||
#:hsx)
|
||||
(:import-from #:website/lib/time
|
||||
#:datetime
|
||||
#:jp-datetime)
|
||||
(:export #:~article))
|
||||
(in-package #:website/components/article)
|
||||
|
||||
(defcomp ~article (&key title content revised-at draft-p)
|
||||
(hsx
|
||||
(<>
|
||||
(and draft-p (hsx (p :class "text-lg text-pink-500" "下書きモード")))
|
||||
(article :class "prose max-w-none"
|
||||
(h1 title)
|
||||
(raw! content)
|
||||
(p :class "text-right"
|
||||
"(最終更新:"
|
||||
(|time| :datetime (datetime revised-at)
|
||||
(jp-datetime revised-at))
|
||||
")")))))
|
|
@ -1,13 +1,11 @@
|
|||
(defpackage #:website/routes/about
|
||||
(:use #:cl
|
||||
#:hsx
|
||||
#:jingle
|
||||
#:access)
|
||||
#:jingle)
|
||||
(:import-from #:website/lib/cms
|
||||
#:get-about)
|
||||
(:import-from #:website/lib/time
|
||||
#:datetime
|
||||
#:jp-datetime)
|
||||
(:import-from #:website/components/article
|
||||
#:~article)
|
||||
(:export #:handle-get))
|
||||
(in-package #:website/routes/about)
|
||||
|
||||
|
@ -19,14 +17,8 @@
|
|||
(with-request-params ((draft-key "draft-key" nil)) params
|
||||
(setf (context :no-cache) draft-key)
|
||||
(let ((about (get-about :query (list :draft-key draft-key))))
|
||||
(hsx
|
||||
(<>
|
||||
(and draft-key (hsx (p :class "text-lg text-pink-500" "下書きモード")))
|
||||
(article :class "prose max-w-none"
|
||||
(h1 "About")
|
||||
(raw! (getf about :content))
|
||||
(p :class "text-right"
|
||||
"(最終更新:"
|
||||
(|time| :datetime (datetime (getf about :revised-at))
|
||||
(jp-datetime (getf about :revised-at)))
|
||||
")")))))))
|
||||
(~article
|
||||
:title "About"
|
||||
:content (getf about :content)
|
||||
:revised-at (getf about :revised-at)
|
||||
:draft-p draft-key))))
|
||||
|
|
|
@ -4,10 +4,8 @@
|
|||
#:jingle)
|
||||
(:import-from #:website/lib/cms
|
||||
#:get-works)
|
||||
(:import-from #:website/lib/time
|
||||
#:datetime
|
||||
#:jp-datetime)
|
||||
(:export #:handle-get))
|
||||
(:import-from #:website/components/article
|
||||
#:~article))
|
||||
(in-package #:website/routes/works)
|
||||
|
||||
(defparameter *metadata*
|
||||
|
@ -18,14 +16,8 @@
|
|||
(with-request-params ((draft-key "draft-key" nil)) params
|
||||
(setf (context :no-cache) draft-key)
|
||||
(let ((works (get-works :query (list :draft-key draft-key))))
|
||||
(hsx
|
||||
(<>
|
||||
(and draft-key (hsx (p :class "text-lg text-pink-500" "下書きモード")))
|
||||
(article :class "prose max-w-none"
|
||||
(h1 "Works")
|
||||
(raw! (getf works :content))
|
||||
(p :class "text-right"
|
||||
"(最終更新:"
|
||||
(|time| :datetime (datetime (getf works :revised-at))
|
||||
(jp-datetime (getf works :revised-at)))
|
||||
")")))))))
|
||||
(~article
|
||||
:title "Works"
|
||||
:content (getf works :content)
|
||||
:revised-at (getf works :revised-at)
|
||||
:draft-p draft-key))))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue