diff options
| author | Asko Nõmm <asko@nmm.ee> | 2025-09-03 16:10:52 +0300 |
|---|---|---|
| committer | Asko Nõmm <asko@nmm.ee> | 2025-09-03 16:10:52 +0300 |
| commit | 0c55f6d39bb83514f6b85f5da02214a78f2b1a13 (patch) | |
| tree | d2bb4b68ee235430bf2d2529be92a625fd159af0 /src/dompa/core.clj | |
| parent | 8080d2b0044b348210622185b80c5f4514bb52e2 (diff) | |
Getting there ...
Diffstat (limited to 'src/dompa/core.clj')
| -rw-r--r-- | src/dompa/core.clj | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/src/dompa/core.clj b/src/dompa/core.clj index d8fff41..79d0c08 100644 --- a/src/dompa/core.clj +++ b/src/dompa/core.clj @@ -4,23 +4,25 @@ [dompa.nodes :refer [coordinates->nodes]])) (defn html->nodes [html] - (->> html - html->coordinates + (->> (html->coordinates html) (coordinates->nodes html))) -(defn nodes->html [nodes] - (reduce - (fn [html node] - (cond - (= (-> node :name) :dompa/text) - (str html (-> node :value)) +(defn nodes->html + ([nodes] + (nodes->html nodes {:void-nodes #{:img}})) + ([nodes {:keys [void-nodes]}] + (reduce + (fn [html node] + (cond + (= (-> node :name) :dompa/text) + (str html (-> node :value)) - :else - (let [node-name (-> node :name name) - node-child-html (nodes->html (-> node :children))] - (str html "<" node-name ">" node-child-html "</" node-name ">")))) - "" - nodes)) + :else + (let [node-name (-> node :name name) + node-child-html (nodes->html (-> node :children))] + (str html "<" node-name ">" node-child-html "</" node-name ">")))) + "" + nodes))) (defn traverse-nodes [nodes pred] (reduce |
