This commit is contained in:
@@ -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))])
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user