diff --git a/doerg/resources/net/deertopia/doerg/tuftesque.css b/doerg/resources/net/deertopia/doerg/tuftesque.css index 31925bd..f09c4af 100644 --- a/doerg/resources/net/deertopia/doerg/tuftesque.css +++ b/doerg/resources/net/deertopia/doerg/tuftesque.css @@ -542,3 +542,7 @@ figure.fullwidth figcaption { ; max-width: 55% ; font-size: 1.5rem } + +.latex-fragment +{ fill: currentColor +} diff --git a/doerg/src/net/deertopia/doerg/render.clj b/doerg/src/net/deertopia/doerg/render.clj index 56a77cb..81ccec0 100644 --- a/doerg/src/net/deertopia/doerg/render.clj +++ b/doerg/src/net/deertopia/doerg/render.clj @@ -138,27 +138,26 @@ (swap! promises #(conj % {:promise p :node node})) (assoc node ::rendered p))))) f (fn [] - (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))))))] + (fs/with-temp-dir [svg-dir {:prefix "doerg-svg"}] + (let [rendered-snippets + (delay (->> @promises + (map #(-> % :node :value)) + (apply tex/render-xelatex svg-dir)))] + (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 + [:div.latex-fragment + (hiccup/raw (slurp file))])) + (deliver promise (hiccup/raw temml)))) + (catch Exception e + (prn e) + (flush) + (throw e)))))))] (future-call (bound-fn* f)) r))