summaryrefslogtreecommitdiff
path: root/src/dompa/nodes.cljc
diff options
context:
space:
mode:
Diffstat (limited to 'src/dompa/nodes.cljc')
-rw-r--r--src/dompa/nodes.cljc15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/dompa/nodes.cljc b/src/dompa/nodes.cljc
index 9dbecd0..e99b364 100644
--- a/src/dompa/nodes.cljc
+++ b/src/dompa/nodes.cljc
@@ -1,4 +1,5 @@
-(ns dompa.nodes)
+(ns dompa.nodes
+ (:require [clojure.zip :as zip]))
(def ^:private default-void-nodes
#{:!doctype :!DOCTYPE :area :base :br :col :embed :hr :img :input
@@ -50,6 +51,18 @@
updated-nodes))
(reduce [] nodes)))
+(defn zip
+ "Creates a zipper for given a given `node`."
+ [node]
+ (zip/zipper
+ (fn branch? [node]
+ (boolean (seq (:node/children node))))
+ (fn children [node]
+ (:node/children node))
+ (fn make-node [node children]
+ (assoc node :node/children children))
+ node))
+
(defn ->html
"Transform a vector of `nodes` into an HTML string.