Delete assets
This commit is contained in:
parent
ee637da21c
commit
1d5a6c1d8a
21 changed files with 16 additions and 423 deletions
src
|
@ -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 ()
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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))))
|
||||
|
|
|
@ -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")
|
|
@ -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)))
|
|
@ -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)))
|
|
@ -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))
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)))
|
|
@ -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)))
|
Loading…
Add table
Add a link
Reference in a new issue