diff --git a/.gitignore b/.gitignore index 2fd4b8e..9ddc370 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /target *.swp test.toml +out/ diff --git a/src/main.rs b/src/main.rs index 48f1ce9..cfc469b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,7 +2,7 @@ use structopt::StructOpt; use toml::Value; use std::collections::hash_map::DefaultHasher; -use std::fs::{copy, create_dir, read_to_string}; +use std::fs::{copy, create_dir, read_to_string, write}; use std::path::PathBuf; #[derive(StructOpt, Debug)] @@ -25,7 +25,7 @@ struct Opt { } /// replaces {{ value }} with actual value -fn replace(mut template: String, rules: &[(&str, &str)]) -> String { +fn replace(mut template: String, rules: &[(String, String)]) -> String { for (x, y) in rules { let l = format!("{{{{ {} }}}}", x); template = template.replace(&l, y) @@ -60,10 +60,10 @@ fn main() { // read template let input = read_to_string( - &[opt.output, PathBuf::from("front.html")] + &[opt.template, PathBuf::from("front.html")] .iter() .collect::(), - ); + ).unwrap(); // create rules @@ -76,10 +76,15 @@ fn main() { let global = collect_table(&value); // iterate over pages - for i in page.as_array().unwrap() { - println!("{:?}", i); + for (index, value) in page.as_array().unwrap().iter().enumerate() { + let table = collect_table(&value); - // TODO create the files + let content = replace(input.clone(), table.as_slice()); + + // create the files + let target = format!("front-{}.html", index); + println!("writing {}", target); + write(&[&opt.output, &PathBuf::from(target)].iter().collect::(), content); } //println!("{:#?}", global);