diff --git a/doerg/doerg-tex/.gitignore b/doerg/doerg-tex/.gitignore new file mode 100644 index 0000000..d366d2e --- /dev/null +++ b/doerg/doerg-tex/.gitignore @@ -0,0 +1 @@ +classes \ No newline at end of file diff --git a/doerg/doerg-tex/compile.clj b/doerg/doerg-tex/compile.clj new file mode 100644 index 0000000..13f96d1 --- /dev/null +++ b/doerg/doerg-tex/compile.clj @@ -0,0 +1,2 @@ +(compile 'serialise) +(compile 'deserialise) diff --git a/doerg/doerg-tex/deps.edn b/doerg/doerg-tex/deps.edn new file mode 100644 index 0000000..65b9cb6 --- /dev/null +++ b/doerg/doerg-tex/deps.edn @@ -0,0 +1,6 @@ +{:deps {babashka/fs {:mvn/version "0.5.24"} + cheshire/cheshire {:mvn/version "6.1.0"} + com.rpl/specter {:mvn/version "1.1.6"} + mvxcvi/clj-cbor {:mvn/version "1.1.1"} + babashka/process {:mvn/version "0.6.25"}} + :paths ["." "classes"]} diff --git a/doerg/doerg-tex/deserialise.clj b/doerg/doerg-tex/deserialise.clj new file mode 100644 index 0000000..e3be265 --- /dev/null +++ b/doerg/doerg-tex/deserialise.clj @@ -0,0 +1,7 @@ +(ns deserialise + (:require [clj-cbor.core :as cbor] + [clojure.string :as str]) + (:gen-class)) + +(defn -main [] + (prn (cbor/decode cbor/default-codec System/in :eof))) diff --git a/doerg/doerg-tex/serialise.clj b/doerg/doerg-tex/serialise.clj index 1c8e9dd..207766f 100644 --- a/doerg/doerg-tex/serialise.clj +++ b/doerg/doerg-tex/serialise.clj @@ -1,6 +1,7 @@ (ns serialise (:require [clj-cbor.core :as cbor] - [clojure.string :as str])) + [clojure.string :as str]) + (:gen-class)) (defn w [x] (cbor/encode cbor/default-codec System/out x)) @@ -8,9 +9,16 @@ (defn c [x] (->> x cbor/encode (map #(format "%02x" %)) (str/join " "))) +#_ (w "\\naturalto") -#_#_#_ -(w "c = \\sqrt{a^2 + y^2}") -(w "c = \\sqrt{a^ + y^2") -(w "\\alpha^\\beta") +(defn -main [] + (w "\\begin{align*} +x &= y +\\\\ &= zzz +\\end{align*}") + + #_#_#_ + (w "c = \\sqrt{a^2 + y^2}") + (w "c = \\sqrt{a^ + y^2") + (w "\\alpha^\\beta")) diff --git a/doerg/src/net/deertopia/doerg/render.clj b/doerg/src/net/deertopia/doerg/render.clj index b40c7b9..99f29f7 100644 --- a/doerg/src/net/deertopia/doerg/render.clj +++ b/doerg/src/net/deertopia/doerg/render.clj @@ -141,8 +141,8 @@ (prn (count @promises)) (Thread/sleep (* 1000 1)) (doseq [{:keys [promise node]} @promises] - (try (let [{:keys [value]} node] - (deliver promise (tex/render value))) + (try (let [{:keys [value contents]} node] + (deliver promise (tex/render (or contents value)))) (catch Throwable e (prn e) (flush)))) @@ -302,14 +302,13 @@ (defmethod org-element "latex-fragment" [{:keys [contents value] :as e}] (let [display? (str/starts-with? value "\\[")] - [:span.latex-fragment (-> e ::rendered (deref 2000 "«timed out»"))] + [:span.latex-fragment + (hiccup/raw (-> e ::rendered (deref 2000 "«timed out»")))] #_ [:span.latex-fragment (hiccup/raw (tex/render contents :display? display?))])) (defmethod org-element "latex-environment" [{:keys [value] :as e}] - [:span.latex-fragment (-> e ::rendered (deref 2000 "«timed out»"))] - #_ [:span.latex-fragment (hiccup/raw (tex/render value :display? true))]) diff --git a/doerg/src/net/deertopia/doerg/tex.clj b/doerg/src/net/deertopia/doerg/tex.clj index a0c5689..42a9c88 100644 --- a/doerg/src/net/deertopia/doerg/tex.clj +++ b/doerg/src/net/deertopia/doerg/tex.clj @@ -164,7 +164,7 @@ (defn tex-worker [& {:keys [preamble]}] (p/process {:shutdown p/destroy-tree - :err :inherit} + :err (l/log-stream :info "temml/err")} #_"doerg-tex" "./doerg-tex/index.js" "--preamble"