# SlimFast [![Build Status](]( [![Hex Version](]( [![License](](

> A refreshing way to slim down your markup in Elixir.

SlimFast is an [Elixir]( library for rendering [Slim]( templates as HTML.

Easily turn this:

doctype html
    meta name="keywords" description="slim fast"
    title = site_title
        = [1, 2], fn x ->
          li = x

Into this:

<!DOCTYPE html>
  <meta name="keywords">
  <title>Website Title</title>

  <div class="class" id="id">

With this:

SlimFast.render(slim, site_title: "Website Title")

## Phoenix

To use slim templates (and SlimFast) with [Phoenix](, please see [PhoenixSlim](

## Precompilation

Templates can be compiled into module functions like EEx templates, using functions
`SlimFast.function_from_file/5` and `SlimFast.function_from_string/5`.

## Differences to Ruby Slim

We aim for feature parity with the original [Slim]( implementation, but we deviate in some respects. We do this to be true to Elixir – just like the original Slim implementation is true to its Ruby foundations.

For example, in SlimFast you do

= if condition do
  p It was true.
- else
  p It was false.

where Ruby Slim would do

- if condition
  p It was true.
- else
  p It was false.

Note the `do` and the initial `=`, because we render the return value of the conditional as a whole.

## Contributing

Feedback, feature requests, and fixes are welcomed and encouraged.  Please make appropriate use of [Issues]( and [Pull Requests](  All code should have accompanying tests.

## License

Please see [LICENSE]( for licensing details.