diff options
| -rw-r--r-- | src/main.rs | 10 | ||||
| -rw-r--r-- | src/works/mod.rs | 14 |
2 files changed, 18 insertions, 6 deletions
diff --git a/src/main.rs b/src/main.rs index 4af487e..77f4fef 100644 --- a/src/main.rs +++ b/src/main.rs @@ -14,11 +14,9 @@ fn main() -> Result<()> { std::fs::write("docs/index.html", output)?; - let file = std::fs::File::open(std::path::PathBuf::from("stories.json"))?; - let stories = works::stories::Stories::new_from_file(file); - let context = stories?.create_tera_context(); - - let stories_html_output = tera.render("stories.html", &context?)?; - std::fs::write("docs/stories.html", stories_html_output)?; + let stories = works::stories::Stories::new_from_file(std::fs::File::open( + std::path::PathBuf::from("stories.json"), + )?); + stories?.render_overview_page(&tera, "stories")?; Ok(()) } diff --git a/src/works/mod.rs b/src/works/mod.rs index cfd302d..8941542 100644 --- a/src/works/mod.rs +++ b/src/works/mod.rs @@ -13,4 +13,18 @@ pub trait Works: for<'a> Deserialize<'a> + Serialize { context.insert("works", &self); Ok(context) } + + fn render_overview_page( + &self, + tera_instance: &tera::Tera, + filename_without_extension: &str, + ) -> Result<()> { + Ok(std::fs::write( + format!("docs/{}.html", filename_without_extension).as_str(), + tera_instance.render( + format!("{}.html", filename_without_extension).as_str(), + &self.create_tera_context()?, + )?, + )?) + } } |
