37 lines
1.1 KiB
Common Lisp
37 lines
1.1 KiB
Common Lisp
(defpackage #:website/components/article
|
|
(:use #:cl
|
|
#:hsx)
|
|
(:import-from #:website/lib/time
|
|
#:datetime
|
|
#:asctime)
|
|
(:export #:~article))
|
|
(in-package #:website/components/article)
|
|
|
|
(defcomp ~article (&key title
|
|
content
|
|
published-at
|
|
revised-at
|
|
draft-p)
|
|
(hsx
|
|
(<>
|
|
(and draft-p (hsx (p :class "text-lg text-pink-500" "Draft Mode")))
|
|
(article :class "prose max-w-none"
|
|
(h1 title)
|
|
(raw! content)
|
|
(p :class "text-right"
|
|
(and published-at
|
|
(hsx
|
|
(span
|
|
"(Published: "
|
|
(|time| :datetime (datetime published-at)
|
|
(asctime published-at))
|
|
")")))
|
|
(and revised-at
|
|
(hsx
|
|
(<>
|
|
(br)
|
|
(span
|
|
"(Last updated: "
|
|
(|time| :datetime (datetime revised-at)
|
|
(asctime revised-at))
|
|
")")))))))))
|