coil
coil copied to clipboard
Coil is a minimalistic static content engine written in elixir
Coil
Coil is a minimalistic static content engine written in elixir.
Requirements
You must have the latest stable version of elixir installed, v0.12.5 as of the writing of this.
Install
Clone the repo, fetch dependencies and compile:
git clone https://github.com/badosu/coil
cd coil && mix do deps.get, compile
Bootstrap a sample coil blog:
mix coil ../blog
cd ../blog && mix deps.get
Apply your configuration:
$EDITOR config.yml
Usage
Add an article: mix post.
Run (on port 8080): PORT=8080 mix run --no-halt.
Deploy to Heroku:
heroku create --buildpack "https://github.com/goshakkk/heroku-buildpack-elixir.git"
git push heroku master
Customize
If you have a mix.exs file requiring the coil lib properly, like
this one, you have only to follow the structure
below to get it working:
.
|-- articles
| `-- YYYY-mm-dd-article-title.md
|-- assets
| `-- example.css
|-- config.yml
|-- mix.exs
|-- pages
| `-- title.md
`-- templates
|-- archives.html.eex
|-- article.html.eex
|-- index.html.eex
|-- index.xml.eex
|-- layout.html.eex
`-- page.html.eex
Routes
- Index:
/ - Page:
/title - Resource:
/assets/example.css - Article:
/articles/YYYY-mm-dd-article-title - RSS feed:
/feed - Archives:
/archives
Templates
Templates are embedded elixir files (see the EEx docs), and can be customized to suit your design:
layout.html.eexThe template in which all other templates are embeddedindex.html.eexRenders the home pagearticle.html.eexRenders the article pagepage.html.eexRenders the page pagearchives.html.eexRenders the archives pageindex.xml.eexRenders the rss feed
License
The MIT License, see LICENSE