This commit is contained in:
@@ -12,7 +12,8 @@
|
|||||||
[com.rpl.specter :as sp]
|
[com.rpl.specter :as sp]
|
||||||
[clojure.tools.logging.readable :as lr]
|
[clojure.tools.logging.readable :as lr]
|
||||||
[clojure.zip :as z]
|
[clojure.zip :as z]
|
||||||
[com.rpl.specter.zipper :as sz])
|
[com.rpl.specter.zipper :as sz]
|
||||||
|
[clojure.core.match :refer [match]])
|
||||||
(:import (java.util UUID))
|
(:import (java.util UUID))
|
||||||
(:refer-clojure :exclude [read-string]))
|
(:refer-clojure :exclude [read-string]))
|
||||||
|
|
||||||
@@ -251,17 +252,16 @@
|
|||||||
[postorder-walker
|
[postorder-walker
|
||||||
(sp/must :children)]
|
(sp/must :children)]
|
||||||
(fn [children]
|
(fn [children]
|
||||||
(-> children z/vector-zip
|
(loop [acc []
|
||||||
(=>> (fn [para-loc]
|
cs (vec children)]
|
||||||
(let [tex-loc (some-> para-loc z/right)
|
(match cs
|
||||||
next-para (some-> tex-loc z/right)]
|
[(para :guard #(of-type? % "paragraph"))
|
||||||
(when (and (of-type? (z/node para-loc) "paragraph")
|
(tex :guard #(of-type? % "latex-environment"))
|
||||||
(some-> tex-loc z/node
|
& rest]
|
||||||
(of-type? "latex-environment")))
|
(recur (conj acc (swallow para tex)) rest)
|
||||||
(when (separated-by-explicit-paragraph-break?
|
[] acc
|
||||||
(z/node para-loc) (z/node tex-loc))
|
[c & rest]
|
||||||
(swap! r #(conj % (z/node para-loc))))))
|
(recur (conj acc c) rest))))
|
||||||
(z/node para-loc)))))
|
|
||||||
doc)]
|
doc)]
|
||||||
@r))
|
@r))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user