index : livejrnl-rs.git

ascending towards madness

use minijinja::{Error, ErrorKind};

// https://docs.rs/minijinja/latest/minijinja/functions/index.html
fn include_file(template_dir: String, name: String) -> Result<String, Error> {
	let file_path = std::path::PathBuf::from(&template_dir);
	let file_path = file_path.join(name);

    std::fs::read_to_string(&file_path)
        .map_err(|e| Error::new(
            ErrorKind::InvalidOperation,
            "cannot load file"
        ).with_source(e))
}

pub fn register_functions(env: &mut minijinja::Environment<'_>) {
	env.add_function("include_file", include_file)
}