Awesome
slim.clj
Simple Templating for Clojure [Slim]: http://github.com/stonean/slim "http://github.com/stonean/slim" [Hiccup]: http://github.com/weavejester/hiccup "http://github.com/weavejester/hiccup"
based on Andrew Stone's [Slim]
Usage
Create a slim template file
; content of views/template.html.slim
- (defn greeting [name] (str "Hello, " name))
div
h1
= (greeting "Slim.clj")
p(id='foo' class='bar') Hello World
Use the render-template function to convert the file to html
user=> (use 'slim.core)
nil
user=> (render-template "views/template.html.slim")
"<div><h1>Hello, Slim.clj</h1><p id='foo' class='bar'>Hello World</p></div>"
Examples
Integration with [Hiccup]
; content of views/hiccup.html.slim
div
= (html [:h1#garfield.heading.cats "Hello World"])
Produces
"<div><h1 class=\"heading cats\" id=\"garfield\">Hello World</h1></div>"
Doctypes
; HTML5
!!! html
; strict
!!! strict
; xml
!!! xml
Produces
<!DOCTYPE HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<?xml version='1.0' encoding='utf-8' ?>
Passing data to a template
; content of views/passed-data.html.slim
div
p
= (locals :blog-content)
Produces
user=> (use 'slim.core)
nil
user=> (render-template "views/passed-data.html.slim" {:blog-content "Lore ipsum Dolor Sit"})
"<div><p>Lore ipsum Dolor Sit</p></div>"
Installation
Leiningen
[slim "0.1.3"]
Coming Soon
- Layouts
License
Distributed under the Eclipse Public License, the same as Clojure.