use minijinja::{Error, ErrorKind}; // https://docs.rs/minijinja/latest/minijinja/functions/index.html fn include_file(template_dir: String, name: String) -> Result { 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) }