Привет всем!
Делаю обертку над mithril.js. Взал за основу Crate и переделал его немножко, чтобы на выходе из такого
[:a {:href "http://google.com"} "test"]выдавал
{tag: "a", attrs: {href: "http://google.com"}, children: "test"}
т.е. объект, который уже можно скормить mithril.js и это даже работает:
(def demo
#js {:controller (fn [x] (println "Hey, I'm controller"))
:view (fn [x] (m/html [:p#my-name.inner-item {:style "margin-top: 10px"} "Hello"]))})
(.mount js/m (.getElementById js/document "app") demo)Возник следующий вопрос, как лучше вставлять разметку в итоговый скомпиленный js файл:
так mithril.html.call(null,new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"p#my-name.inner-item","p#my-name.inner-item",490290203),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"style","style",-496642736),"margin-top: 10px"], null),"Hello"], null));
или так #js [#js {:tag p, :attrs #js {:id my-name, :class inner-item, :style margin-top: 10px}, :children #js [Hello]}]
Если вариант с #js лучше, то насколько трудно будет написать макрос?