Lisp/Hiccup style templating for Facebook's React in ClojureScript.
Via Clojars: https://clojars.org/sablono
Most functions from Hiccup
are provided in the sablono.core
namespace. The library can be used
with Om like this:
(ns example
(:require [om.core :as om :include-macros true]
[sablono.core :as html :refer-macros [html]]))
(defn widget [data]
(om/component
(html [:div "Hello world!"
[:ul (for [n (range 1 10)]
[:li n])]
(html/submit-button "React!")])))
(om/root widget {} {:target js/document.body})
Ŝablono only supports tags and attributes that can be handled by React. This means you can't have your own custom tags and attributes at the moment. For more details take a look at the Tags and Attributes section in the React documentation.
HTML attributes in
React
are camel-cased and the class
and for
attributes are treated
special. Ŝablono renames attributes with dashes in their name to the
camel-cased version and handles the class
and for
special
case. This is more consistent with
Hiccup and naming conventions
used in Clojure.
An input
element with event listeners attached to it would look like
this in Ŝablono:
(html [:input
{:auto-complete "off"
:class "autocomplete"
:on-change #(on-change %1)
:on-key-down #(on-key-down %1)
:type "text"}])
This library is based on James Reeves Hiccup library.
Copyright © 2013-2015 r0man
Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.