diff --git a/Makefile b/Makefile index 88584ac..8155e9d 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -TAILWINDCSS_URL=https://github.com/tailwindlabs/tailwindcss/releases/latest/download/tailwindcss-macos-arm64 +TAILWIND_URL=https://github.com/tailwindlabs/tailwindcss/releases/latest/download/tailwindcss-macos-arm64 TAILWIND_TARGET=tailwindcss-macos-arm64 BIN_DIR=./bin TAILWIND_BIN=$(BIN_DIR)/tailwindcss @@ -11,7 +11,7 @@ install: ## Download TailwindCSS binary and install other dependencies @echo "Creating bin directory if it doesn't exist..." mkdir -p $(BIN_DIR) @echo "Downloading TailwindCSS binary..." - curl -sLO $(TAILWINDCSS_URL) + curl -sLO $(TAILWIND_URL) @echo "Making TailwindCSS binary executable..." chmod +x $(TAILWIND_TARGET) @echo "Moving TailwindCSS binary to $(BIN_DIR)..." @@ -32,4 +32,12 @@ help: ## Display available commands and their descriptions clean: ## Remove the bin directory and clean up generated files @echo "Removing $(BIN_DIR)..." - rm -rf $(BIN_DIR) \ No newline at end of file + rm -rf $(BIN_DIR) + +lem: ## Open Lem with TailwindCSS server + @echo "Starting make watch in background..." + @make watch > /dev/null 2>&1 & \ + WATCH_PID=$$!; \ + trap "kill $$WATCH_PID" SIGINT SIGTERM EXIT; \ + lem; \ + kill $$WATCH_PID \ No newline at end of file diff --git a/src/app.lisp b/src/app.lisp index ace2fd6..39e40ae 100644 --- a/src/app.lisp +++ b/src/app.lisp @@ -11,8 +11,6 @@ (defparameter *app* (jg:make-app :address "localhost" :port env:*port*)) -(jg:clear-middlewares *app*) -(jg:clear-routing-rules *app*) (fbr:assign-routes *app* :system "hp" :directory "src/routes") (jg:install-middleware *app* mw:*recoverer*) (jg:install-middleware *app* mw:*path-normalizer*) diff --git a/src/main.lisp b/src/main.lisp index b334566..cd75331 100644 --- a/src/main.lisp +++ b/src/main.lisp @@ -10,16 +10,10 @@ #:update)) (in-package #:hp) -(defparameter *watch-process* nil) - (defun start () - (when (env:dev-mode-p) - (setf *watch-process* (uiop:launch-program "make watch"))) (jg:start *app*)) (defun stop () - (when (env:dev-mode-p) - (uiop:terminate-process *watch-process*)) (jg:stop *app*)) (defun update () diff --git a/src/renderer.lisp b/src/renderer.lisp index d46a4dd..05b6d19 100644 --- a/src/renderer.lisp +++ b/src/renderer.lisp @@ -1,7 +1,8 @@ (defpackage #:hp/renderer (:use #:cl #:hsx) - (:local-nicknames (#:jg #:jingle))) + (:local-nicknames (#:jg #:jingle)) + (:local-nicknames (#:env #:hp/env))) (in-package #:hp/renderer) (defcomp document (&key title description children) @@ -26,6 +27,8 @@ (defmethod jg:process-response ((app jg:app) result) (jg:set-response-header :content-type "text/html; charset=utf-8") + (when (env:dev-mode-p) + (jg:set-response-header :cache-control "no-store")) (call-next-method app (hsx:render-to-string (if (listp result) diff --git a/src/routes/index.lisp b/src/routes/index.lisp index f7f4bc1..6ac54da 100644 --- a/src/routes/index.lisp +++ b/src/routes/index.lisp @@ -13,7 +13,7 @@ open: false, get isOpen() { return this.open }, toggle() { this.open = ! this.open }, - }" + }" (button :@click "toggle()" "Toggle") (div :x-show "isOpen"