diff options
author | vallentin <mail@vallentin.dev> | 2021-03-10 08:43:01 +0100 |
---|---|---|
committer | Dirkjan Ochtman <dirkjan@ochtman.nl> | 2021-03-10 13:09:56 +0100 |
commit | 8566d8258a960fc1456d271b25428cbd312ba42b (patch) | |
tree | 2b41b81cb071f87f6178e6d87773a28373c7ae26 /askama_shared/src/input.rs | |
parent | 7291494e6a79928cce6ae8844d6ec3092ce51663 (diff) | |
download | askama-8566d8258a960fc1456d271b25428cbd312ba42b.tar.gz askama-8566d8258a960fc1456d271b25428cbd312ba42b.tar.bz2 askama-8566d8258a960fc1456d271b25428cbd312ba42b.zip |
Fixed extension to ignore common jinja extensions (fixes #457)
Diffstat (limited to 'askama_shared/src/input.rs')
-rw-r--r-- | askama_shared/src/input.rs | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/askama_shared/src/input.rs b/askama_shared/src/input.rs index be380ea..febd51c 100644 --- a/askama_shared/src/input.rs +++ b/askama_shared/src/input.rs @@ -205,7 +205,17 @@ impl<'a> TemplateInput<'a> { } fn extension(path: &Path) -> Option<&str> { - path.extension().map(|s| s.to_str().unwrap()) + let ext = path.extension().map(|s| s.to_str().unwrap())?; + + const JINJA_EXTENSIONS: [&str; 3] = ["j2", "jinja", "jinja2"]; + if JINJA_EXTENSIONS.contains(&ext) { + Path::new(path.file_stem().unwrap()) + .extension() + .map(|s| s.to_str().unwrap()) + .or(Some(ext)) + } else { + Some(ext) + } } pub enum Source { |