Delete assets

This commit is contained in:
Akira Tempaku 2024-06-15 16:42:44 +09:00
commit 1d5a6c1d8a
21 changed files with 16 additions and 423 deletions

View file

@ -14,13 +14,9 @@
:port cfg:*port*))
(defun start ()
(if (cfg:dev-mode-p)
(uiop:run-program "make dev"))
(jg:start *app*))
(defun stop ()
(if (cfg:dev-mode-p)
(uiop:run-program "make stop"))
(jg:stop *app*))
(defun setup ()

View file

@ -1,41 +1,14 @@
(defpackage #:hp/components/document
(:use #:cl
#:hsx)
(:import-from #:hp/view/asset
#:defasset)
(:export #:document))
(in-package #:hp/components/document)
(defasset *htmx* :vendor "htmx@1.9.12.js")
(defasset *htmx-exts* :htmx-ext
("alpine-morph@1.9.12.js"
"head-support@1.9.12.js"))
(defasset *alpine* :vendor "alpine@3.13.8.js")
(defasset *alpine-exts* :alpine-ext
("morph@3.13.8.js"
"persist@3.13.8.js"))
(defasset *alpine-store* :root "store.js")
(defasset *global-css* :root "global.css")
(defasset *dist-css* :root "dist.css")
(defcomp document (&key title description children)
(hsx
(html :lang "ja"
(head
(meta :charset "UTF-8")
(script :src *htmx*)
(mapcar (lambda (path) (script :src path))
*htmx-exts*)
(mapcar (lambda (path) (script :src path :defer t))
*alpine-exts*)
(script :src *alpine-store* :defer t)
(script :src *alpine* :defer t)
(style
"@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap');")
(link :rel "stylesheet" :type "text/css" :href *global-css*)
(link :rel "stylesheet" :type "text/css" :href *dist-css*)
(title (format nil "~@[~a - ~]skyizwhite.dev" title))
(meta
:name "description"

View file

@ -1,51 +1,13 @@
(uiop:define-package #:hp/components/layout
(:use #:cl)
(:mix #:parenscript
#:paren6
(:use #:cl
#:hsx)
(:import-from #:hp/config/asset
#:*hx-ext*)
(:import-from #:hp/view/asset
#:defasset)
(:export #:layout))
(in-package #:hp/components/layout)
(defparameter *header-nav-items*
'((:href "/" :label "Home")
(:href "/about" :label "About")
(:href "/work" :label "Work")))
(defcomp header-nav-item (&key href label)
(hsx
(li
:class "px-4 rounded-full"
:|:class| (ps* `(and (is-current-path ,href)
"font-bold bg-indigo-200 pointer-events-none shadow-sm"))
(a :href href
label))))
(defcomp layout-header ()
(hsx
(header :class "px-10 py-6 flex justify-between"
(h1 :class "font-bold text-xl"
"skyizwhite.dev")
(nav
:x-data (ps (create6
(current-path (@ window location pathname))
(defun is-current-path (path)
(eql (@ this current-path) path))))
:hx-boost "true"
(ul :class "h-full flex items-center gap-6 text-lg"
(mapcar (lambda (item) (header-nav-item item))
*header-nav-items*))))))
(defcomp layout (&key children)
(hsx
(body
:hx-ext *hx-ext*
:class "h-[100svh] flex flex-col bg-neutral-200"
(layout-header)
(main :class "flex-1"
(header)
(main
children)
; footer
(footer))))

View file

@ -1,15 +0,0 @@
(defpackage #:hp/config/asset
(:use #:cl)
(:export #:*asset-roots*
#:*hx-ext*))
(in-package #:hp/config/asset)
(defparameter *asset-roots*
'(:root "/"
:img "/img/"
:vendor "/vendor/"
:htmx-ext "/vendor/htmx-ext/"
:alpine-ext "/vendor/alpine-ext/"))
(defparameter *hx-ext*
"head-support,alpine-morph")

View file

@ -1,22 +1,20 @@
(defpackage #:hp/view/responser
(defpackage #:hp/response
(:use #:cl)
(:import-from #:hsx
#:render)
(:import-from #:hsx)
(:local-nicknames (#:jg #:jingle))
(:local-nicknames (#:cfg #:hp/config/env))
(:local-nicknames (#:cmp #:hp/components/*))
(:export #:response
#:partial-response))
(in-package #:hp/view/responser)
(in-package #:hp/response)
(defun response (page &key status metadata)
(jg:with-html-response
(if status (jg:set-response-status status))
(render (cmp:document :metadata metadata
(cmp:layout page))
:minify t)))
(hsx:render-to-string (cmp:document :metadata metadata
(cmp:layout page)))))
(defun partial-response (component &key status)
(jg:with-html-response
(if status (jg:set-response-status status))
(render component :minify t)))
(hsx:render-to-string component)))

View file

@ -1,18 +0,0 @@
(defpackage #:hp/routes/about
(:use #:cl
#:hsx)
(:import-from #:hp/view/*
#:response)
(:export #:handle-get))
(in-package #:hp/routes/about)
(defcomp page ()
(hsx
(div :class "h-full place-content-center"
(h1
:class "text-4xl text-center"
"Coming soon..."))))
(defun handle-get (params)
(declare (ignore params))
(response (page)))

View file

@ -1,64 +1,13 @@
(uiop:define-package #:hp/routes/index
(:use #:cl)
(:mix #:parenscript
#:paren6
#:hsx)
(:import-from #:hp/view/*
#:defasset
#:response)
(:use #:cl
#:hsx
#:hp/response)
(:export #:handle-get))
(in-package #:hp/routes/index)
(defasset *me-img* :img "me.jpg")
(defcomp page ()
(hsx
(div :class "h-full place-content-center"
(div :class "flex justify-center gap-x-20"
(div :class "flex justify-end"
(img
:src *me-img*
:alt "avatar of paku"
:class "w-full max-w-xs rounded-xl shadow-sm"))
(div :class "flex flex-col justify-center gap-10"
(h1 :class "text-4xl font-bold"
"paku")
(p :class "text-xl"
"Web developer")
(ul
(li
(span "GitHub:")
(a
:target "_blank"
:href "https://github.com/skyizwhite"
:class "text-indigo-500"
"@skyizwhite"))
(li
(span "Email: ")
(a
:x-data (ps (create6
(email (chain (list6 "paku" "skyizwhite.dev")
(join "@")))))
:x-text (ps email)
:|:href| (ps (chain (list6 "mailto:" email) (join "")))
:|:class| "'text-indigo-500'"
"(Please enable Javascript to show.)"))
(li
(span "Fediverse(main): ")
(a
:rel "me"
:target "_blank"
:href "https://post.skyizwhite.dev/@paku"
:class "text-indigo-500"
"@paku@post.skyizwhite.dev"))
(li
(span "Fediverse(sub): ")
(a
:rel "me"
:target "_blank"
:href "https://himagine.club/@skyizwhite"
:class "text-indigo-500"
"@skyizwhite@himagine.club"))))))))
(h1 "Hello, World!")))
(defun handle-get (params)
(declare (ignore params))

View file

@ -1,8 +1,7 @@
(defpackage #:hp/routes/not-found
(:use #:cl
#:hsx)
(:import-from #:hp/view/responser
#:response)
#:hsx
#:hp/response)
(:export #:handle-not-found))
(in-package #:hp/routes/not-found)
@ -12,10 +11,7 @@
(defcomp page ()
(hsx
(div :class "h-full place-content-center"
(h1
:class "text-rose-400 text-4xl text-center"
"404 Not Found"))))
(h1 "404 Not Found")))
(defun handle-not-found ()
(response (page)

View file

@ -1,18 +0,0 @@
(defpackage #:hp/routes/work
(:use #:cl
#:hsx)
(:import-from #:hp/view/*
#:response)
(:export #:handle-get))
(in-package #:hp/routes/work)
(defcomp page ()
(hsx
(div :class "h-full place-content-center"
(h1
:class "text-4xl text-center"
"Coming soon..."))))
(defun handle-get (params)
(declare (ignore params))
(response (page)))

View file

@ -1,22 +0,0 @@
(defpackage #:hp/view/asset
(:use #:cl)
(:local-nicknames (#:re #:cl-ppcre))
(:local-nicknames (#:cfg #:hp/config/asset))
(:export #:asset-root
#:defasset))
(in-package #:hp/view/asset)
(defun asset-root (kind)
(getf cfg:*asset-roots* kind))
(defun asset-path (kind path)
(concatenate 'string (asset-root kind) path))
(defun asset-path-under (kind)
(lambda (path)
(asset-path kind path)))
(defmacro defasset (name kind files)
`(defparameter ,name
(,(if (listp files) 'mapcar 'funcall)
(asset-path-under ,kind) ',files)))