From 42d7a2063b9a923b6538bee9c61eda04f1242d85 Mon Sep 17 00:00:00 2001 From: Asko Nõmm Date: Sun, 21 Sep 2025 23:19:24 +0300 Subject: Starting work on HTML builder functions. Probably needs a different namespace. --- src/dompa/utils.cljc | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/src/dompa/utils.cljc b/src/dompa/utils.cljc index c25e841..5e57e2c 100644 --- a/src/dompa/utils.cljc +++ b/src/dompa/utils.cljc @@ -1 +1,36 @@ (ns dompa.utils) + +(defn- make-node + [name & opts] + (let [node {:name name}] + (if (get (first opts) :name) + (merge + node + (when-not (empty? opts) + {:children opts})) + (let [attrs (first opts) + [_ & children] opts] + (merge + node + {:attrs attrs} + (when-not (empty? children) + {:children children})))))) + +(defn doctype [] + (make-node :!DOCTYPE {:html true})) + +(defn head [& opts] + (make-node :head opts)) + +(defn body [& opts] + (make-node :body opts)) + +(defn span [& opts] + (make-node :span opts)) + +(comment + (list + (doctype) + (head) + (body + (span {:class "test"} (span {:class "test2"}))))) \ No newline at end of file -- cgit v1.2.3