Update about page
This commit is contained in:
parent
3fae8f8320
commit
9acec8bbe2
6 changed files with 52 additions and 43 deletions
|
@ -13,11 +13,24 @@
|
||||||
(defparameter *metadata*
|
(defparameter *metadata*
|
||||||
(list :title "about"))
|
(list :title "about"))
|
||||||
|
|
||||||
(defcomp ~page ()
|
|
||||||
(hsx
|
|
||||||
(p "coming soon")))
|
|
||||||
|
|
||||||
(defun handle-get (params)
|
(defun handle-get (params)
|
||||||
(declare (ignore params))
|
|
||||||
(setf (context :metadata) *metadata*)
|
(setf (context :metadata) *metadata*)
|
||||||
(~page))
|
(with-request-params ((draft-key "draft-key" nil)) params
|
||||||
|
(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")
|
||||||
|
(div :class "flex justify-center"
|
||||||
|
(figure :class "flex flex-col items-center"
|
||||||
|
(img
|
||||||
|
:src (getf (getf about :avatar) :url)
|
||||||
|
:alt "avatar" :class "size-40 rounded-xl shadow-sm avatar")
|
||||||
|
(figcaption (getf about :avatar-caption))))
|
||||||
|
(raw! (getf about :content))
|
||||||
|
(p :class "text-right"
|
||||||
|
"(最終更新:"
|
||||||
|
(|time| :datetime (datetime (getf about :revised-at))
|
||||||
|
(jp-datetime (getf about :revised-at)))
|
||||||
|
")")))))))
|
||||||
|
|
|
@ -8,11 +8,7 @@
|
||||||
(defparameter *metadata*
|
(defparameter *metadata*
|
||||||
(list :title "blog"))
|
(list :title "blog"))
|
||||||
|
|
||||||
(defcomp ~page ()
|
|
||||||
(hsx
|
|
||||||
(p "coming soon")))
|
|
||||||
|
|
||||||
(defun handle-get (params)
|
(defun handle-get (params)
|
||||||
(declare (ignore params))
|
(declare (ignore params))
|
||||||
(setf (context :metadata) *metadata*)
|
(setf (context :metadata) *metadata*)
|
||||||
(~page))
|
(hsx (p "coming soon")))
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
(defpackage #:website/routes/index
|
(defpackage #:website/routes/index
|
||||||
(:use #:cl
|
(:use #:cl
|
||||||
#:hsx)
|
#:hsx)
|
||||||
|
(:import-from #:website/lib/cms
|
||||||
|
#:get-about)
|
||||||
(:export #:handle-get
|
(:export #:handle-get
|
||||||
#:handle-head))
|
#:handle-head))
|
||||||
(in-package #:website/routes/index)
|
(in-package #:website/routes/index)
|
||||||
|
@ -22,29 +24,29 @@
|
||||||
"https://status.skyizwhite.dev"
|
"https://status.skyizwhite.dev"
|
||||||
"/img/icon/server.svg")))
|
"/img/icon/server.svg")))
|
||||||
|
|
||||||
(defcomp ~page ()
|
|
||||||
(hsx
|
|
||||||
(div :class "flex flex-col items-center justify-center h-full"
|
|
||||||
(img :src "/img/avatar.webp" :alt "avatar" :class "size-40 rounded-xl shadow-sm")
|
|
||||||
(div :class "flex flex-col items-center gap-2 py-6"
|
|
||||||
(h1 :class "font-bold text-2xl text-center"
|
|
||||||
"Akira Tempaku")
|
|
||||||
(p :class "text-xl"
|
|
||||||
"Web developer"))
|
|
||||||
(div :class "flex flex-col gap-2 items-left"
|
|
||||||
(loop
|
|
||||||
:for (name url icon) :in *links*
|
|
||||||
:collect (hsx (a
|
|
||||||
:href url
|
|
||||||
:target "_blank"
|
|
||||||
:class "flex items-center gap-2 text-lg hover:text-pink-500"
|
|
||||||
:rel "me"
|
|
||||||
(img :src icon :alt name :class "size-4 mt-1")
|
|
||||||
(span name))))))))
|
|
||||||
|
|
||||||
(defun handle-get (params)
|
(defun handle-get (params)
|
||||||
(declare (ignore params))
|
(declare (ignore params))
|
||||||
(~page))
|
(let ((about (get-about :query '(:fields "avatar"))))
|
||||||
|
(hsx
|
||||||
|
(div :class "flex flex-col items-center justify-center h-full"
|
||||||
|
(img
|
||||||
|
:src (getf (getf about :avatar) :url)
|
||||||
|
:alt "avatar" :class "size-40 rounded-xl shadow-sm avatar")
|
||||||
|
(div :class "flex flex-col items-center gap-2 py-6"
|
||||||
|
(h1 :class "font-bold text-2xl text-center"
|
||||||
|
"Akira Tempaku")
|
||||||
|
(p :class "text-xl"
|
||||||
|
"Web developer"))
|
||||||
|
(div :class "flex flex-col gap-2 items-left"
|
||||||
|
(loop
|
||||||
|
:for (name url icon) :in *links*
|
||||||
|
:collect (hsx (a
|
||||||
|
:href url
|
||||||
|
:target "_blank"
|
||||||
|
:class "flex items-center gap-2 text-lg hover:text-pink-500"
|
||||||
|
:rel "me"
|
||||||
|
(img :src icon :alt name :class "size-4 mt-1")
|
||||||
|
(span name)))))))))
|
||||||
|
|
||||||
; for health check
|
; for health check
|
||||||
(defun handle-head (params)
|
(defun handle-head (params)
|
||||||
|
|
|
@ -10,14 +10,11 @@
|
||||||
:description "The page you are looking for may have been deleted or the URL might be incorrect."
|
:description "The page you are looking for may have been deleted or the URL might be incorrect."
|
||||||
:error t))
|
:error t))
|
||||||
|
|
||||||
(defcomp ~page ()
|
(defun handle-not-found ()
|
||||||
|
(setf (context :metadata) *metadata*)
|
||||||
(hsx
|
(hsx
|
||||||
(div :class "flex flex-col h-full items-center justify-center gap-y-6"
|
(div :class "flex flex-col h-full items-center justify-center gap-y-6"
|
||||||
(h1 :class "font-bold text-2xl"
|
(h1 :class "font-bold text-2xl"
|
||||||
"404 Not Found")
|
"404 Not Found")
|
||||||
(a :href "/" :class "text-lg text-pink-500 hover:underline"
|
(a :href "/" :class "text-lg text-pink-500 hover:underline"
|
||||||
"Back to TOP"))))
|
"Back to TOP"))))
|
||||||
|
|
||||||
(defun handle-not-found ()
|
|
||||||
(setf (context :metadata) *metadata*)
|
|
||||||
(~page))
|
|
||||||
|
|
|
@ -13,11 +13,7 @@
|
||||||
(defparameter *metadata*
|
(defparameter *metadata*
|
||||||
(list :title "work"))
|
(list :title "work"))
|
||||||
|
|
||||||
(defcomp ~page ()
|
|
||||||
(hsx
|
|
||||||
(p "coming soon")))
|
|
||||||
|
|
||||||
(defun handle-get (params)
|
(defun handle-get (params)
|
||||||
(declare (ignore params))
|
(declare (ignore params))
|
||||||
(setf (context :metadata) *metadata*)
|
(setf (context :metadata) *metadata*)
|
||||||
(~page))
|
(hsx (p "coming soon")))
|
||||||
|
|
|
@ -26,4 +26,9 @@
|
||||||
|
|
||||||
@view-transition {
|
@view-transition {
|
||||||
navigation: auto;
|
navigation: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.avatar {
|
||||||
|
view-transition-name: avatar;
|
||||||
|
contain: paint;
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue