From 236e0d464f6472a36f7e1f5dc0b0f71b26b8ecc3 Mon Sep 17 00:00:00 2001 From: WriterV2 Date: Sat, 3 Sep 2022 20:49:55 +0200 Subject: Add method to render overview page for work --- src/main.rs | 10 ++++------ 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()?, + )?, + )?) + } } -- cgit v1.2.3