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

View File

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