This commit is contained in:
2026-02-26 11:07:12 -07:00
parent b765f71b55
commit e67f62e5b0
2 changed files with 27 additions and 20 deletions

View File

@@ -10,7 +10,8 @@
[hiccup2.core :as hiccup] [hiccup2.core :as hiccup]
[clojure.pprint] [clojure.pprint]
[net.deertopia.doerg.tex :as tex] [net.deertopia.doerg.tex :as tex]
[clojure.zip :as z])) [clojure.zip :as z]
[babashka.fs :as fs]))
;;; Top-level API ;;; Top-level API
@@ -137,22 +138,27 @@
(swap! promises #(conj % {:promise p :node node})) (swap! promises #(conj % {:promise p :node node}))
(assoc node ::rendered p))))) (assoc node ::rendered p)))))
f (fn [] f (fn []
(doseq [{:keys [promise node]} @promises] (let [rendered-snippets
(try (let [{:keys [value contents]} node (delay (->> @promises
temml (tex/render-temml (or contents value))] (map #(-> % :node :value))
(if (tex/erroneous-temml-output? temml) (apply tex/render-xelatex
(deliver promise "errors!! aghhh!!") "/tmp/doerg-test/svg")))]
(deliver promise temml))) (def the-rendered-snippets rendered-snippets)
(catch Exception e (doseq [{:keys [promise node]} @promises]
(prn e) (try (let [{:keys [value contents]} node
(flush) temml (tex/render-temml (or contents value))]
(throw e)))) (if (tex/erroneous-temml-output? temml)
#_ (let [{:keys [file]} (get @rendered-snippets value)]
(doseq [[ix {:keys [promise node]}] (deliver
(map (fn [i x] [i x]) (range) @promises)] promise
(printf "what %d\n" ix) [:object.latex-fragment
(flush) {:data (format "svg/%s" (fs/file-name file))
(deliver promise (str ix))))] :type "image/svg+xml"}]))
(deliver promise (hiccup/raw temml))))
(catch Exception e
(prn e)
(flush)
(throw e))))))]
(future-call (bound-fn* f)) (future-call (bound-fn* f))
r)) r))
@@ -304,14 +310,14 @@
(defmethod org-element "latex-fragment" [{:keys [contents value] :as e}] (defmethod org-element "latex-fragment" [{:keys [contents value] :as e}]
(let [display? (str/starts-with? value "\\[")] (let [display? (str/starts-with? value "\\[")]
[:span.latex-fragment [:span.latex-fragment
(hiccup/raw (-> e ::rendered (deref 2000 "«timed out»")))] (-> e ::rendered (deref 2000 "«timed out»"))]
#_ #_
[:span.latex-fragment [:span.latex-fragment
(hiccup/raw (tex/render-temml contents :display? display?))])) (hiccup/raw (tex/render-temml contents :display? display?))]))
(defmethod org-element "latex-environment" [{:keys [value] :as e}] (defmethod org-element "latex-environment" [{:keys [value] :as e}]
[:span.latex-fragment [:span.latex-fragment
(hiccup/raw (-> e ::rendered (deref 2000 "«timed out»")))] (-> e ::rendered (deref 2000 "«timed out»"))]
#_ #_
[:span.latex-fragment [:span.latex-fragment
(hiccup/raw (tex/render-temml value :display? true))]) (hiccup/raw (tex/render-temml value :display? true))])

View File

@@ -141,7 +141,8 @@
{snippet {snippet
(-> dimensions (-> dimensions
(assoc (assoc
:file (fs/file dir (format "%09d.svg" (inc ix)))))}) :file (fs/file output-dir
(format "%09d.svg" (inc ix)))))})
(range) (range)
distinct-snippets distinct-snippets
dimensions) dimensions)