diff --git a/doerg/src/net/deertopia/doerg/tex/temml.clj b/doerg/src/net/deertopia/doerg/tex/temml.clj index 46cfbf4..c45752a 100644 --- a/doerg/src/net/deertopia/doerg/tex/temml.clj +++ b/doerg/src/net/deertopia/doerg/tex/temml.clj @@ -16,14 +16,22 @@ (def ^:dynamic *worker*) -(defn worker [& {:keys [preamble]}] +(def ^:private prelude-file + (fs/create-temp-file {:prefix "doerg-prelude-" + :suffix ".tex"})) + +(defn worker [] (let [doerg-temml-worker (::cfg/doerg-temml-worker cfg/*cfg*)] + (when-not (fs/exists? prelude-file) + (-> "net/deertopia/doerg/prelude.tex" + io/resource + io/input-stream + (io/copy prelude-file))) (p/process {:shutdown p/destroy-tree :err (l/log-stream :info "temml/err")} doerg-temml-worker - "--preamble" - "resources/net/deertopia/doerg/prelude.tex"))) + "--preamble" prelude-file))) (defn close-worker [tw] (.close (:in tw))) diff --git a/publisher/src/net/deertopia/publisher/server.clj b/publisher/src/net/deertopia/publisher/server.clj index 7bfc8ab..3d05539 100644 --- a/publisher/src/net/deertopia/publisher/server.clj +++ b/publisher/src/net/deertopia/publisher/server.clj @@ -11,7 +11,7 @@ [reitit.ring.coercion] [reitit.core :as r] [reitit.ring] - [reitit.ring.middleware.exception] + [reitit.ring.middleware.exception :as reitit-exception] [ring.util.response :as response] [spec-tools.spell] [reitit.spec] @@ -39,17 +39,18 @@ (defn node-by-slug [{{{:keys [slug]} :path} :parameters}] (-> (hiccup/html {} - [:html - [:head - [:title "node by sluggg"] - doerg-html/charset - doerg-html/viewport] - [:body - [:h1 "node by slug"] - [:pre - (with-out-str - (pprint (-> slug slug/from-string roam/get-node - roam/org-file)))]]]) + [:html + [:head + [:title "node by sluggg"] + doerg-html/charset + doerg-html/viewport] + [:body + [:h1 "node by slug"] + [:pre + (-> slug slug/from-string roam/get-node + roam/org-file doerg-render/to-html)]]]) + #_(-> slug slug/from-string roam/get-node + roam/org-file doerg-render/to-html) str response/response (response/content-type "text/html"))) @@ -57,6 +58,15 @@ (defn node-by-id [req] (hello req)) +(def exception-middleware + (reitit-exception/create-exception-middleware + (merge + reitit-exception/default-handlers + {::reitit-exception/wrap + (fn [handler e request] + (l/error e "error in fucking somwhere dude") + (handler e request))}))) + (def router (reitit.ring/router #{["/" {:get hello}] @@ -70,7 +80,7 @@ :spec (s/merge :reitit.spec/default-data) :data {:coercion reitit.coercion.spec/coercion - :middleware [reitit.ring.middleware.exception/exception-middleware + :middleware [exception-middleware reitit.ring.coercion/coerce-request-middleware reitit.ring.coercion/coerce-response-middleware #_reitit.ring.coercion/coerce-exceptions-middleware]}}))