I'm trying to create template that produces table with some data in it. Data comes from a map defined in msh-contents.
(require '[net.cgrand.enlive-html :as html])
(def msh-contents {:title "Events mashup",
:data-content [{:title "ICTM Study Group ",
:url "http://some-url.com"}
{:title "Volodja Balzalorsky - Hinko Haas",
:url "http://some- other-url.com"}
]})
;; define snippets based on some divs in the template
(html/defsnippet header-cell (template-div) [:div.Heading :div.Cell][value]
(html/content value))
(html/defsnippet value-cell (template-div) [:div.Row :div.Cell] [value]
(html/content value))
;; define a template
(html/deftemplate mshp "index.html" [cont]
[:div.Heading]
(html/content (for [c (keys (first (:data-content cont)))] (header-cell (name c))))
[:div.Row]
(html/content (map #(value-cell %) (for[e (:data-content cont)] (vals e)))))
So, callling the template in REPL
(mshp msh-contents)
Produces error: IllegalArgumentException ArityException Wrong number of args (0) passed to: PersistentArrayMap clojure.lang.AFn.throwArity (AFn.java:437), and its probably because snippets produces LazySeq.