mirror of
https://github.com/askama-rs/askama.git
synced 2025-09-28 21:41:35 +00:00
Add function to find template relative to another template's path
This commit is contained in:
parent
e293a1a90c
commit
670dbe4aec
@ -9,6 +9,30 @@ fn template_dir() -> PathBuf {
|
||||
path
|
||||
}
|
||||
|
||||
pub fn find_template_from_path<'a>(path: &str, start_at: Option<&str>) -> PathBuf {
|
||||
let root = template_dir();
|
||||
match start_at {
|
||||
Some(rel) => {
|
||||
let mut fs_rel_path = root.clone();
|
||||
fs_rel_path.push(rel);
|
||||
fs_rel_path = fs_rel_path.with_file_name(path);
|
||||
if fs_rel_path.exists() {
|
||||
return fs_rel_path.strip_prefix(&root).unwrap().to_owned();
|
||||
}
|
||||
},
|
||||
None => {},
|
||||
}
|
||||
|
||||
let mut fs_abs_path = root.clone();
|
||||
let path = Path::new(path);
|
||||
fs_abs_path.push(Path::new(path));
|
||||
if fs_abs_path.exists() {
|
||||
path.to_owned()
|
||||
} else {
|
||||
panic!(format!("template '{:?}' not found", path.to_str()));
|
||||
}
|
||||
}
|
||||
|
||||
pub fn get_template_source(tpl_file: &str) -> String {
|
||||
let mut path = template_dir();
|
||||
path.push(Path::new(tpl_file));
|
||||
|
Loading…
x
Reference in New Issue
Block a user