a small relational database with user-editable schema for manual data entry
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
yopa/yopa-web/src/tera_ext.rs

30 lines
1019 B

use tera::Tera;
use include_dir::Dir;
/// Add templates from include_dir!() to Tera
pub(crate) fn tera_includedir_walk_folder(tera : &mut Tera, dir: &Dir) {
let mut templates = vec![];
tera_includedir_walk_folder_inner(&mut templates, tera, dir);
tera.add_raw_templates(templates);
}
fn tera_includedir_walk_folder_inner(collected : &mut Vec<(String, String)>, tera : &mut Tera, dir: &Dir) {
for f in dir.files() {
if f.path().extension().unwrap_or_default() != "tera" {
continue;
}
let name = f.path().file_stem().unwrap().to_str().unwrap().split('.').nth(0).unwrap();
let content = f.contents_utf8().unwrap();
let p = f.path().parent().unwrap().join(name);
let template_path = p.to_str().unwrap();
debug!("Add template: {}", template_path);
collected.push((template_path.to_string(), content.to_string()));
}
for subdir in dir.dirs() {
tera_includedir_walk_folder_inner(collected, tera, subdir)
}
}