diff --git a/doerg/src/net/deertopia/doerg/render.clj b/doerg/src/net/deertopia/doerg/render.clj index 89f8739..65cf602 100644 --- a/doerg/src/net/deertopia/doerg/render.clj +++ b/doerg/src/net/deertopia/doerg/render.clj @@ -137,15 +137,16 @@ (swap! promises #(conj % {:promise p :node node})) (assoc node ::rendered p))))) f (fn [] - (println "run") - (prn (count @promises)) - (Thread/sleep (* 1000 1)) (doseq [{:keys [promise node]} @promises] - (try (let [{:keys [value contents]} node] - (deliver promise (tex/render-temml (or contents value)))) - (catch Throwable e + (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)))) + (flush) + (throw e)))) #_ (doseq [[ix {:keys [promise node]}] (map (fn [i x] [i x]) (range) @promises)] diff --git a/doerg/src/net/deertopia/doerg/tex.clj b/doerg/src/net/deertopia/doerg/tex.clj index e1dd98e..a32cdbf 100644 --- a/doerg/src/net/deertopia/doerg/tex.clj +++ b/doerg/src/net/deertopia/doerg/tex.clj @@ -116,7 +116,13 @@ slurp (str/replace-first "% {{contents}}" contents)))) -(defn render-xelatex [output-dir & snippets] +(defn render-xelatex + "Render a collection of `snippets` to SVGs in `output-dir` using + XeLaTeX and dvisvgm. Returns a map whose keys are `snippets` and + whose values are maps containing dimensional info, a string of + errors output by XeLaTeX, and the path to the generated SVG + file. Math delimiters are *not* implicitly added to each snippet." + [output-dir & snippets] (fs/with-temp-dir [dir {:prefix "doerg-xelatex"}] (let [preview-tex (fs/file dir "preview.tex") preview-xdv (fs/file dir "preview.xdv")