summaryrefslogtreecommitdiff
path: root/src/main.rs
blob: a531785b15cf1197a78da52ef0df6f43962e07cf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
use anyhow::{Context, Ok, Result};
use tera::Tera;

use self::works::stories::Stories;
use self::works::Works;

mod works;

fn main() -> Result<()> {
    // new tera instance
    let tera = Tera::new("templates/**/*.html").context("Failed to create new Tera instance")?;

    // render index.html file
    let context = tera::Context::new();
    let output = tera
        .render("index.html", &context)
        .context("Failed to render index.html")?;
    std::fs::write("docs/index.html", output).context("Failed to write index.html")?;

    // render stories.html file
    Stories::new_from_file(
        &std::fs::File::open(std::path::PathBuf::from("stories.json"))
            .context("Failed to open stories.json")?,
    )?
    .render_overview_page(&tera, "stories")
    .context("Failed to render overview page for stories")?
    .render_single_pages(&tera, "story")
    .context("Failed to render single pages for stories")?;

    Ok(())
}