mirror of https://github.com/rwf2/Rocket.git
Use upstream Tera. Emit warning on conflicting templates.
This commit is contained in:
parent
c61e740572
commit
8fd19cce4f
|
@ -36,4 +36,4 @@ handlebars = { version = "^0.24", optional = true, features = ["serde_type"] }
|
||||||
glob = { version = "^0.2", optional = true }
|
glob = { version = "^0.2", optional = true }
|
||||||
lazy_static = { version = "^0.2", optional = true }
|
lazy_static = { version = "^0.2", optional = true }
|
||||||
# tera = { version = "^0.6", optional = true }
|
# tera = { version = "^0.6", optional = true }
|
||||||
tera = { git = "https://github.com/SergioBenitez/tera", optional = true }
|
tera = { git = "https://github.com/Keats/tera", optional = true }
|
||||||
|
|
|
@ -238,20 +238,26 @@ fn discover_templates() -> HashMap<String, TemplateInfo> {
|
||||||
"handlebars_templates" => handlebars_templates,
|
"handlebars_templates" => handlebars_templates,
|
||||||
];
|
];
|
||||||
|
|
||||||
let mut templates = HashMap::new();
|
let mut templates: HashMap<String, TemplateInfo> = HashMap::new();
|
||||||
for &(ext, _) in &engines {
|
for &(ext, _) in &engines {
|
||||||
let mut glob_path: PathBuf = TEMPLATE_DIR.join("**").join("*");
|
let mut glob_path: PathBuf = TEMPLATE_DIR.join("**").join("*");
|
||||||
glob_path.set_extension(ext);
|
glob_path.set_extension(ext);
|
||||||
for path in glob(glob_path.to_str().unwrap()).unwrap().filter_map(Result::ok) {
|
for path in glob(glob_path.to_str().unwrap()).unwrap().filter_map(Result::ok) {
|
||||||
let (rel_path, name, data_type) = split_path(&path);
|
let (rel_path, name, data_type) = split_path(&path);
|
||||||
let info = TemplateInfo {
|
if let Some(info) = templates.get(&*name) {
|
||||||
|
warn_!("Template name '{}' does not have a unique path.", name);
|
||||||
|
info_!("Existing path: {:?}", info.full_path);
|
||||||
|
info_!("Additional path: {:?}", path);
|
||||||
|
warn_!("Using existing path for template '{}'.", name);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
templates.insert(name, TemplateInfo {
|
||||||
full_path: path.to_path_buf(),
|
full_path: path.to_path_buf(),
|
||||||
path: rel_path,
|
path: rel_path,
|
||||||
extension: ext.to_string(),
|
extension: ext.to_string(),
|
||||||
data_type: data_type,
|
data_type: data_type,
|
||||||
};
|
});
|
||||||
|
|
||||||
templates.insert(name, info);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ pub unsafe fn register(templates: &[(&str, &TemplateInfo)]) -> bool {
|
||||||
|
|
||||||
// Collect into a tuple of (name, path) for Tera.
|
// Collect into a tuple of (name, path) for Tera.
|
||||||
let tera_templates = templates.iter()
|
let tera_templates = templates.iter()
|
||||||
.map(|&(name, info)| (name, &info.full_path))
|
.map(|&(name, info)| (&info.full_path, Some(name)))
|
||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
|
|
||||||
// Finally try to tell Tera about all of the templates.
|
// Finally try to tell Tera about all of the templates.
|
||||||
|
|
Loading…
Reference in New Issue