From d15f9988c290f8bc5ed9bbb827eb8eee98dea555 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Madeleine=20Sydney=20=C5=9Alaga?= Date: Thu, 26 Feb 2026 00:32:11 -0700 Subject: [PATCH] --- doerg/src/net/deertopia/doerg/render.clj | 64 +++++++++++++----------- doerg/src/net/deertopia/doerg/repl.clj | 4 +- doerg/src/net/deertopia/doerg/tex.clj | 4 ++ 3 files changed, 43 insertions(+), 29 deletions(-) diff --git a/doerg/src/net/deertopia/doerg/render.clj b/doerg/src/net/deertopia/doerg/render.clj index 03582be..b40c7b9 100644 --- a/doerg/src/net/deertopia/doerg/render.clj +++ b/doerg/src/net/deertopia/doerg/render.clj @@ -45,28 +45,28 @@ (defn org-element-recursive "Recursively render an Org-mode element to Hiccup." [e] - (tex/binding-tex-worker - (->> e - (sp/transform - [element/postorder-walker view-children-as-seq] - (fn [node] - (try (org-element node) - (catch Throwable e - (lr/error e "Error in renderer" {:node node}) - (render-renderer-error e)))))))) + (->> e + (sp/transform + [element/postorder-walker view-children-as-seq] + (fn [node] + (try (org-element node) + (catch Throwable e + (lr/error e "Error in renderer" {:node node}) + (render-renderer-error e))))))) (defn org-document "Recursively render an Org-mode document to Hiccup." [doc] - (let [rendered (-> doc gather-footnotes render-tex-snippets - org-element-recursive)] - [:html - [:head - [:title "org document"] - doerg-html/head] - [:body - [:article - rendered]]])) + (tex/binding-tex-worker + (let [rendered (-> doc gather-footnotes render-tex-snippets + org-element-recursive)] + [:html + [:head + [:title "org document"] + doerg-html/head] + [:body + [:article + rendered]]]))) ;;; Further dispatching on `org-element` @@ -135,16 +135,24 @@ (fn [node] (let [p (promise)] (swap! promises #(conj % {:promise p :node node})) - (assoc node ::rendered p)))))] - (future - (println "run") - (prn (count @promises)) - (Thread/sleep (* 1000 1)) - (doseq [[ix {:keys [promise node]}] - (map (fn [i x] [i x]) (range) @promises)] - (printf "what %d\n" ix) - (flush) - (deliver promise (str ix)))) + (assoc node ::rendered p))))) + f (fn [] + (println "run") + (prn (count @promises)) + (Thread/sleep (* 1000 1)) + (doseq [{:keys [promise node]} @promises] + (try (let [{:keys [value]} node] + (deliver promise (tex/render value))) + (catch Throwable e + (prn e) + (flush)))) + #_ + (doseq [[ix {:keys [promise node]}] + (map (fn [i x] [i x]) (range) @promises)] + (printf "what %d\n" ix) + (flush) + (deliver promise (str ix))))] + (future-call (bound-fn* f)) r)) (comment diff --git a/doerg/src/net/deertopia/doerg/repl.clj b/doerg/src/net/deertopia/doerg/repl.clj index 8a03a0b..eaddc35 100644 --- a/doerg/src/net/deertopia/doerg/repl.clj +++ b/doerg/src/net/deertopia/doerg/repl.clj @@ -16,7 +16,9 @@ "/home/msyds/org/20251111182118-path_induction.org" #_ "/home/msyds/org/20250512144715-natural_transformation_category_theory.org" - "/home/msyds/org/20251021155921-path_action.org") + #_ + "/home/msyds/org/20251021155921-path_action.org" + "/tmp/t.org") (defn- force-create-sym-link [path target] (fs/delete-if-exists path) diff --git a/doerg/src/net/deertopia/doerg/tex.clj b/doerg/src/net/deertopia/doerg/tex.clj index 88c00c3..a0c5689 100644 --- a/doerg/src/net/deertopia/doerg/tex.clj +++ b/doerg/src/net/deertopia/doerg/tex.clj @@ -197,3 +197,7 @@ (if display? (command [s]) (command s))) + +;; hackky.... +(defn erroneous-temml-output? [s] + (re-find #"(#b22222|temml-error)" s))