Handlebars based flexible static site generator library
Because it is slim(e) and flexible (like a slime...)
template + data = static page!
Create new binary crate.
Run:
curl -s https://raw.githubusercontent.com/jaroslaw-weber/slime/master/init_slime.sh | bash
(setup folders and deploy scripts for github+travis)
Folder structure:
``` - generated (generated html files) - data (data to insert into templates) - index.toml - templates - index.hbs (handlebar templates) deploy.sh (deploying generated html files to github pages) .travis.yml (travis build script)
```
Code:
``` extern crate slime; use slime::Slime;
fn main() { //create new wrapper let s = Slime::default();
//load data
let data1 = s.load_json_data("data1").expect("failed to load json data");
let data2 = s.load_toml_data("data2").expect("failed to load toml data");
//generate html files
s.generate("index", "json_version", &data1)
.expect("failed to generate page with json data");
s.generate("index", "toml_version", &data2)
.expect("failed to generate page with toml data");
}
```
let mut s = Slime::default();
Create new wrapper.
let data1 = s.load_json_data("data1").expect("failed to load json data");
let data2 = s.load_toml_data("data2").expect("failed to load toml data");
Load some toml/json data from data folder.
s.generate("index", "json_version", &data1)
.expect("failed to generate page with json data");
s.generate("index", "toml_version", &data2)
.expect("failed to generate page with toml data");
Generate html files.
Generating page without writing rust code. (todo: not implemented yet)
Install slime with
cargo install slime
Initialize project with
cargo slime --init
Put data in data folder.
Put templates in template folder.
Push everything to github.
Setup travis and wait for build to finish.
Your website will be generated and deployed automatically!