diff options
| author | Asko Nõmm <asko@repl.ee> | 2025-10-26 11:38:28 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-26 11:38:28 +0200 |
| commit | a30919848d19168b4010f37d29c0a42a2c9f8f77 (patch) | |
| tree | e1be8dfb423488d6f1846d5890dd5cef59333ca5 /src/dompa | |
| parent | 1ea91841b1a1a2d8e0b75750b5d765278ee78782 (diff) | |
| parent | a0a150d89d30af3ca4d586fc7874d70778b51e73 (diff) | |
Merge pull request #10 from askonomm/9-investigate-making-traverse-impl-be-zipper-basedv1.1.0
9 investigate making traverse impl be zipper based
Diffstat (limited to 'src/dompa')
| -rw-r--r-- | src/dompa/nodes.cljc | 15 |
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. |
