From f541321d55f529773d704d7bc71bb586b2b42e7b Mon Sep 17 00:00:00 2001 From: Akira Tempaku <paku@skyizwhite.dev> Date: Fri, 2 May 2025 00:49:52 +0900 Subject: [PATCH 1/2] Rename ui to components --- src/{ui => components}/layout.lisp | 49 ++++++++++++++---------------- src/renderer.lisp | 2 +- src/ui/.keep | 0 tailwind.config.js | 2 +- 4 files changed, 25 insertions(+), 28 deletions(-) rename src/{ui => components}/layout.lisp (61%) delete mode 100644 src/ui/.keep diff --git a/src/ui/layout.lisp b/src/components/layout.lisp similarity index 61% rename from src/ui/layout.lisp rename to src/components/layout.lisp index ea14831..4421773 100644 --- a/src/ui/layout.lisp +++ b/src/components/layout.lisp @@ -1,4 +1,4 @@ -(defpackage #:hp/ui/layout +(defpackage #:hp/components/layout (:use #:cl #:hsx) (:import-from #:hp/lib/metadata @@ -6,7 +6,7 @@ (:import-from #:jingle #:request-uri) (:export #:~layout)) -(in-package #:hp/ui/layout) +(in-package #:hp/components/layout) (defun bust-cache (url) (format nil "~a?v=~a" url #.(get-universal-time))) @@ -40,27 +40,24 @@ (body :hx-ext "head-support, response-targets, preload" :hx-boost "true" :hx-target-404 "body" :hx-target-5* "body" - :class (<> - "h-[100svh] flex flex-col bg-[url(/img/bg.webp)] bg-cover bg-center " - "p-2 md:p-8") - (div :class (<> - "bg-amber-50/90 flex flex-col flex-1 w-full max-w-[700px] overflow-hidden shadow-sm " - "px-2 pt-2 mx-auto md:px-8 md:pt-8") - (header :class "flex justify-between pb-2 md:pb-4 border-b-1" - (h1 :class "text-2xl md:text-3xl font-bold" - (a :href "/" - "skyizwhite")) - (nav :class "flex items-end" - (ul - :preload "mouseover" - :class "flex gap-4 text-lg" - (loop - :for (href label) :in *nav-menu* - :collect - (if (search href (request-uri jingle:*request*)) - (hsx (li :class "text-pink-500" - label)) - (hsx (li (a :href href :class "underline hover:text-pink-500" - label)))))))) - (main :class "flex-1 pt-2 pb-4 md:pt-4 md:pb-8 overflow-y-scroll " - children)))))) + :class (<> + "bg-amber-50/90 flex flex-col h-[100svh] w-full max-w-[700px] " + "px-2 pt-2 mx-auto md:px-8 md:pt-8") + (header :class "flex justify-between pb-2 md:pb-4 border-b-1" + (h1 :class "text-2xl md:text-3xl font-bold" + (a :href "/" + "skyizwhite")) + (nav :class "flex items-end" + (ul + :preload "mouseover" + :class "flex gap-4 text-lg" + (loop + :for (href label) :in *nav-menu* + :collect + (if (search href (request-uri jingle:*request*)) + (hsx (li :class "text-pink-500" + label)) + (hsx (li (a :href href :class "underline hover:text-pink-500" + label)))))))) + (main :class "flex-1 pt-2 pb-4 md:pt-4 md:pb-8 overflow-y-scroll " + children))))) diff --git a/src/renderer.lisp b/src/renderer.lisp index 23742cf..8d26ca9 100644 --- a/src/renderer.lisp +++ b/src/renderer.lisp @@ -9,7 +9,7 @@ (:import-from #:hp/lib/env #:hp-url #:hp-env) - (:import-from #:hp/ui/layout + (:import-from #:hp/components/layout #:~layout)) (in-package #:hp/renderer) diff --git a/src/ui/.keep b/src/ui/.keep deleted file mode 100644 index e69de29..0000000 diff --git a/tailwind.config.js b/tailwind.config.js index e7772f0..738e1dd 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -3,7 +3,7 @@ module.exports = { content: [ "./src/renderer.lisp", "./src/routes/**/*.lisp", - "./src/ui/**/*.lisp", + "./src/components/**/*.lisp", ], theme: { container: { From 9503b56084c9488ec580f3ac27d180e5b92607b1 Mon Sep 17 00:00:00 2001 From: Akira Tempaku <paku@skyizwhite.dev> Date: Fri, 2 May 2025 01:31:26 +0900 Subject: [PATCH 2/2] Remove bg, add header --- src/components/header.lisp | 28 ++++++++++++++++++++++++++++ src/components/layout.lisp | 36 +++++++++--------------------------- 2 files changed, 37 insertions(+), 27 deletions(-) create mode 100644 src/components/header.lisp diff --git a/src/components/header.lisp b/src/components/header.lisp new file mode 100644 index 0000000..82bbef8 --- /dev/null +++ b/src/components/header.lisp @@ -0,0 +1,28 @@ +(defpackage #:hp/components/header + (:use #:cl + #:hsx) + (:import-from #:jingle + #:request-uri) + (:export #:~header)) +(in-package #:hp/components/header) + +(defparameter *nav-menu* + '(("/bio" "bio") + ("/work" "work") + ("/blog" "blog"))) + +(defcomp ~header () + (hsx + (header :class "flex justify-between pb-2 md:pb-4 border-b-1" + (h1 :class "text-2xl md:text-3xl font-bold" + (a :href "/" + "skyizwhite")) + (nav :class "flex items-end" + (ul :preload "mouseover" :class "flex gap-4 text-lg" + (loop + :for (href label) :in *nav-menu* :collect + (if (search href (request-uri jingle:*request*)) + (hsx (li :class "text-pink-500" + label)) + (hsx (li (a :href href :class "underline hover:text-pink-500" + label)))))))))) diff --git a/src/components/layout.lisp b/src/components/layout.lisp index 4421773..fadd874 100644 --- a/src/components/layout.lisp +++ b/src/components/layout.lisp @@ -3,19 +3,14 @@ #:hsx) (:import-from #:hp/lib/metadata #:~metadata) - (:import-from #:jingle - #:request-uri) + (:import-from #:hp/components/header + #:~header) (:export #:~layout)) (in-package #:hp/components/layout) (defun bust-cache (url) (format nil "~a?v=~a" url #.(get-universal-time))) -(defparameter *nav-menu* - '(("/bio" "bio") - ("/work" "work") - ("/blog" "blog"))) - (defcomp ~layout (&key metadata children) (hsx (html :lang "ja" @@ -41,23 +36,10 @@ :hx-ext "head-support, response-targets, preload" :hx-boost "true" :hx-target-404 "body" :hx-target-5* "body" :class (<> - "bg-amber-50/90 flex flex-col h-[100svh] w-full max-w-[700px] " - "px-2 pt-2 mx-auto md:px-8 md:pt-8") - (header :class "flex justify-between pb-2 md:pb-4 border-b-1" - (h1 :class "text-2xl md:text-3xl font-bold" - (a :href "/" - "skyizwhite")) - (nav :class "flex items-end" - (ul - :preload "mouseover" - :class "flex gap-4 text-lg" - (loop - :for (href label) :in *nav-menu* - :collect - (if (search href (request-uri jingle:*request*)) - (hsx (li :class "text-pink-500" - label)) - (hsx (li (a :href href :class "underline hover:text-pink-500" - label)))))))) - (main :class "flex-1 pt-2 pb-4 md:pt-4 md:pb-8 overflow-y-scroll " - children))))) + "bg-amber-50 flex flex-col h-[100svh] w-full max-w-[700px] " + "p-2 md:pt-6 mx-auto") + (~header) + (main :class "flex-1 px-2 py-6 md:px-4 md:py-8 overflow-y-scroll" + children) + (footer :class "flex p-2 justify-center text-sm border-t-1" + (p "© 2025 Akira Tempaku"))))))