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