An open API service indexing awesome lists of open source software.

https://github.com/lawfulgood/simplates


https://github.com/lawfulgood/simplates

elixir templates

Last synced: 28 days ago
JSON representation

Awesome Lists containing this project

README

          

# Simplates for Elixir
[![Build Status](https://travis-ci.org/LawfulGood/simplates.svg?branch=master)](https://travis-ci.org/LawfulGood/simplates)
[![Coverage Status](https://coveralls.io/repos/github/LawfulGood/simplates/badge.svg?branch=master)](https://coveralls.io/github/LawfulGood/simplates?branch=master)

Simplates are a file format for server-side web programming. Used currently in [Infuse](https://github.com/LawfulGood/infuse).

This repository is my future spec for [simplates.org](http://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:
```

program = "hellö"
excitement = :rand.uniform(100)

<%= hello %>, program, my favorite number is <%= num %>

```

## Installation

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

```elixir
def deps do
[{:simplates, "~> 0.4.0"}]
end
```

2. Ensure `simplates` is started before your application:

```elixir
def application do
[applications: [:simplates]]
end
```

3. Create & render like so

```elixir
page = Simplates.Simplate.create_from_string("\nHello\n")

{output, _} = Simplates.Simplate.render(page, "text/plain")
```