diff options
| author | Jake Zerrer <him@jakezerrer.com> | 2025-08-12 10:49:35 -0400 |
|---|---|---|
| committer | Jake Zerrer <him@jakezerrer.com> | 2025-08-12 10:49:35 -0400 |
| commit | a921181505370e8db61d79606d8530105022ff18 (patch) | |
| tree | f1315d651dff15dbdfc9dee5c714a6f50c924d01 | |
| parent | ad261cf0fb5b72fc8ff35056d1b54c9b0ab77fa5 (diff) | |
Create repl workflow
| -rw-r--r-- | .dir-locals.el | 2 | ||||
| -rw-r--r-- | deps.edn | 4 | ||||
| -rw-r--r-- | dev/repl.clj | 38 | ||||
| -rw-r--r-- | src/core.clj | 6 |
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"))) @@ -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)) |
