From 0602391977d1718712ace912c323327b221427df Mon Sep 17 00:00:00 2001 From: paku <paku@skyizwhite.dev> Date: Sat, 16 Nov 2024 20:37:45 +0900 Subject: [PATCH] Improve --- src/app.lisp | 2 +- src/env.lisp | 4 +++- src/main.lisp | 9 ++++++--- src/routes/not-found.lisp | 10 +++++++--- 4 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/app.lisp b/src/app.lisp index 39e40ae..cebe764 100644 --- a/src/app.lisp +++ b/src/app.lisp @@ -8,7 +8,7 @@ (:export #:*app*)) (in-package #:hp/app) -(defparameter *app* (jg:make-app :address "localhost" +(defparameter *app* (jg:make-app :address env:*address* :port env:*port*)) (fbr:assign-routes *app* :system "hp" :directory "src/routes") diff --git a/src/env.lisp b/src/env.lisp index 9b9179c..da55c39 100644 --- a/src/env.lisp +++ b/src/env.lisp @@ -2,7 +2,8 @@ (:use #:cl) (:export #:dev-mode-p #:prod-mode-p - #:*port*)) + #:*port* + #:*address*)) (in-package #:hp/env) (defmacro defenv (name env &key default parser) @@ -14,6 +15,7 @@ ,default))))) (defenv *env* "HP_ENV" :default "dev") +(defenv *address* "HP_ADDRESS" :default "localhost") (defenv *port* "HP_PORT" :default 3000 :parser #'parse-integer) (defun dev-mode-p () diff --git a/src/main.lisp b/src/main.lisp index cd75331..c83f1f6 100644 --- a/src/main.lisp +++ b/src/main.lisp @@ -7,16 +7,19 @@ #:*app*) (:export #:start #:stop - #:update)) + #:reload)) (in-package #:hp) (defun start () - (jg:start *app*)) + (jg:start *app*) + (when (env:dev-mode-p) + (uiop:run-program (format nil "open http://~a:~a" + env:*address* env:*port*)))) (defun stop () (jg:stop *app*)) -(defun update () +(defun reload () (stop) (ql:quickload :hp/app) (start)) diff --git a/src/routes/not-found.lisp b/src/routes/not-found.lisp index f3d9202..d9371c5 100644 --- a/src/routes/not-found.lisp +++ b/src/routes/not-found.lisp @@ -7,12 +7,16 @@ (defparameter *metadata* '(:title "404 Not Found" - :description "お探しのページは見つかりませんでした。")) + :description "お探しのページは削除されたか、URLが間違っている可能性があります。")) (defcomp page () (hsx - (h1 :class "text-red-600" - "404 Not Found"))) + (div :class "flex flex-col justify-center items-center h-full gap-4" + (h1 :class "text-2xl text-red-600" + "404 Not Found") + (p (getf *metadata* :description)) + (a :href "/" :class "text-pink-600" + "トップページに戻る")))) (defun handle-not-found () (jg:set-response-status :not-found)