The Slim template engine seems to have gained a lot of popularity in the Rails community recently. Their site describes it as ‘A lightweight templating engine.‘ For a long time I’ve loved Haml, taking the approach that I’d rather _describe_ my intent than hard code HTML tags all over the place.
However, in hindsight having used Slim for a while it appears Haml might have stepped a bit too far away from HTML, including some cryptic syntax like ‘%’ signs to declare tags. Slim takes a step back towards HTML. It still uses the significant whitespace element of Haml and removes the annoying <>’s, but keeps you closer to the actual HTML that you’re describing.
Here’s an example of Slim (taken from a presentation I gave recently)
p = link_to "New Link", new_link_path - @links.each do |link| .link .title = link_to link.title, link.url, :target => "_blank" .description = link.description .manage = link_to "Delete", link, :method => :delete, :confirm => 'Are you sure?' = paginate @links
Nice and clean. The way it should be :)
To install it in your Rails app, just add it to your
Then create a view using the .slim file extension to start using Slim.
Resources to check out:
For those using vim and the rails.vim plugin - the most recent version of the plugin supports .slim extensions for templates.