summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorWriterV2 <primary-v2@protonmail.com>2022-09-03 20:49:55 +0200
committerWriterV2 <primary-v2@protonmail.com>2022-09-03 20:49:55 +0200
commit236e0d464f6472a36f7e1f5dc0b0f71b26b8ecc3 (patch)
tree2219f27c22f4d3baeee778c827e168a86e7ae588 /src
parent9d2a896f0180e82d3728c5961c1312502100e69c (diff)
Add method to render overview page for work
Diffstat (limited to 'src')
-rw-r--r--src/main.rs10
-rw-r--r--src/works/mod.rs14
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()?,
+ )?,
+ )?)
+ }
}