A fast, Django-inspired template library for Clojure developers. Build HTML pages, emails, and reusable layouts with variables, filters, tags, includes, and inheritance.
(require '[selmer.parser :as selmer])
(selmer/render "Hello {{name|capitalize}}!"
{:name "world"})
;;=> "Hello World!"
(selmer/render-file "home.html" {:items ["Clojure" "Selmer" "Templates"]})
<ul>
{% for item in items %}
<li>{{ item|title }}</li>
{% empty %}
<li>No items yet.</li>
{% endfor %}
</ul>
known-variables resolves variables embedded in tag arguments like {% if {{var}} %}.default filter with @lookup fallbacks returns empty when the lookup is missing.selmer.util/*escape-fn* (JSON, URL, HTML).{% include %} tags supported for readable partials.