diff --git a/src/main.rs b/src/main.rs index 2fea7f9..1b18d77 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,36 +4,75 @@ use minijinja::Environment; mod render; use render::{Renderer, IndexItem, build_jinja_env, Template}; -const SRC_PATH: &'static str = "../src"; +const SRC_PATH: &'static str = "./src/"; const OUT_PATH: &'static str = "./html/"; -fn render_index(out_path: &Path, index: &IndexItem, cur_path: &Path, site_index: &Renderer, jinja_env: Option<&Environment>) { +fn render_index( + out_path: &Path, + index: &IndexItem, + cur_path: &Path, + site_index: &Renderer, + templates: Option>>, + jinja_env: Option<&Environment> +) { let dest_path: &Path = &cur_path.join(&index.friendly); - println!("dest_path: {:?}", dest_path); + // println!("dest_path: {:?}", dest_path); + + let templates = match templates { + Some(template) => template, + None => Template::index(&site_index.path.join("templates")), + }; let jinja_env = match jinja_env { Some(env) => env, - None => &build_jinja_env(Template::index(&site_index.path.join("templates"))), + None => &build_jinja_env(templates.clone()), }; match &index.src { Some(src) => { + // a source file is available. try to render it + let friendly = match index.friendly.len() { 0 => String::from("index"), _ => index.friendly.clone() }; if !index.is_asset { - let dest_path: &Path = &cur_path.join(format!("{}.{}", friendly, index.target_extention)); + // find template + let templ: Option