summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJake Zerrer <him@jakezerrer.com>2025-08-12 10:49:35 -0400
committerJake Zerrer <him@jakezerrer.com>2025-08-12 10:49:35 -0400
commita921181505370e8db61d79606d8530105022ff18 (patch)
treef1315d651dff15dbdfc9dee5c714a6f50c924d01
parentad261cf0fb5b72fc8ff35056d1b54c9b0ab77fa5 (diff)
Create repl workflow
-rw-r--r--.dir-locals.el2
-rw-r--r--deps.edn4
-rw-r--r--dev/repl.clj38
-rw-r--r--src/core.clj6
4 files changed, 46 insertions, 4 deletions
diff --git a/.dir-locals.el b/.dir-locals.el
new file mode 100644
index 0000000..f8338cc
--- /dev/null
+++ b/.dir-locals.el
@@ -0,0 +1,2 @@
+((nil
+ (cider-clojure-cli-global-options . "-A:dev")))
diff --git a/deps.edn b/deps.edn
index 0a0f25b..68caf05 100644
--- a/deps.edn
+++ b/deps.edn
@@ -1,3 +1,5 @@
{:paths ["" "src" "resources"]
:deps {org.clojure/clojure {:mvn/version "1.12.0"}
- io.github.borkdude/html {:mvn/version "0.2.2"}}}
+ io.github.borkdude/html {:mvn/version "0.2.2"}}
+ :aliases {:dev {:extra-paths ["dev"]
+ :extra-deps {ring/ring-jetty-adapter {:mvn/version "1.14.1"}}}}}
diff --git a/dev/repl.clj b/dev/repl.clj
new file mode 100644
index 0000000..dc9dc43
--- /dev/null
+++ b/dev/repl.clj
@@ -0,0 +1,38 @@
+(ns repl
+ (:require [core :refer [-main] :rename {-main build}]
+ [ring.adapter.jetty :as jetty]
+ [ring.middleware.file :as file]
+ [ring.middleware.content-type :as content-type]
+ [ring.util.response :as response]))
+
+(defonce server (atom nil))
+
+(defn app [request]
+ (or ((file/wrap-file identity "target/html") request)
+ (response/not-found "Not Found")))
+
+(def handler
+ (-> app
+ content-type/wrap-content-type))
+
+(defn start []
+ (when-not @server
+ (reset! server (jetty/run-jetty handler {:port 8080 :join? false}))
+ (println "Server started on http://localhost:8080")))
+
+(defn stop []
+ (when @server
+ (.stop @server)
+ (reset! server nil)
+ (println "Server stopped")))
+
+(defn restart []
+ (stop)
+ (start))
+
+(defn serve []
+ (start))
+
+(comment
+ (restart)
+ (build))
diff --git a/src/core.clj b/src/core.clj
index f13531e..e36b8bb 100644
--- a/src/core.clj
+++ b/src/core.clj
@@ -34,7 +34,7 @@
(def pages
{"/" home
- "/about2" about
+ "/about" about
"/blog/this-life" this-life
"/blog/something-else" something-else})
@@ -48,7 +48,7 @@
:when (not= dir target-dir)]
(.delete dir)))))
-(defn compile []
+(defn build []
(doseq [[path page-fn] pages]
(let [target-path (if (= path "/")
"target/html/index.html"
@@ -59,4 +59,4 @@
(defn -main []
(clean)
- (compile))
+ (build))