Simplates for Elixir

Build Status Coverage Status

Simplates are a file format for server-side web programming. Used currently in Infuse.

This repository is my future spec for simplates.org

Why Simplates?

Mixing code into templates leads to unmaintainable spaghetti. On the other hand, putting closely-related templates and code in completely separate subdirectories makes it painful to switch back and forth.

Simplates improve web development by bringing code and templates as close together as possible, without mixing them.

What does a Simplate look like?

Here’s an example:

<script>
  program = "hellö"
  excitement = :rand.uniform(100)
</script>

<template type="text/html" via="EEx">
  <h1><%= hello %>, program, my favorite number is <%= num %></h1>
</template>

Installation

  1. Add simplates to your list of dependencies in mix.exs:

    def deps do
      [{:simplates, "~> 0.4.0"}]
    end
  2. Ensure simplates is started before your application:

    def application do
      [applications: [:simplates]]
    end
  3. Create & render like so

    page = Simplates.Simplate.create_from_string("<template>\nHello\n</template>")
    
    {output, _} = Simplates.Simplate.render(page, "text/plain")