(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))
                   ")")))))))))