mirror of
https://github.com/askama-rs/askama.git
synced 2025-09-29 22:11:17 +00:00
Use one way of finding templates on the path
This commit is contained in:
parent
b9cb5b82e6
commit
077c56c007
@ -66,7 +66,8 @@ fn get_template_meta(ast: &syn::DeriveInput) -> TemplateMeta {
|
||||
/// value as passed to the `template()` attribute.
|
||||
fn build_template(ast: &syn::DeriveInput) -> String {
|
||||
let meta = get_template_meta(ast);
|
||||
let src = path::get_template_source(&meta.path);
|
||||
let path = path::find_template_from_path(&meta.path, None);
|
||||
let src = path::get_template_source(&path);
|
||||
let nodes = parser::parse(&src);
|
||||
if meta.print == "ast" || meta.print == "all" {
|
||||
println!("{:?}", nodes);
|
||||
|
@ -1,5 +1,6 @@
|
||||
use nom::{self, IResult};
|
||||
use path;
|
||||
use std::path::Path;
|
||||
use std::str;
|
||||
|
||||
#[derive(Debug)]
|
||||
@ -324,7 +325,7 @@ named!(block_include<Node>, do_parse!(
|
||||
name: ws!(expr_str_lit) >>
|
||||
nws: opt!(tag_s!("-")) >>
|
||||
(Node::Include(WS(pws.is_some(), nws.is_some()), match name {
|
||||
Expr::StrLit(s) => path::get_template_source(s),
|
||||
Expr::StrLit(s) => path::get_template_source(Path::new(s)),
|
||||
_ => panic!("include path must be a string literal"),
|
||||
}))
|
||||
));
|
||||
|
@ -33,9 +33,9 @@ pub fn find_template_from_path<'a>(path: &str, start_at: Option<&str>) -> PathBu
|
||||
}
|
||||
}
|
||||
|
||||
pub fn get_template_source(tpl_file: &str) -> String {
|
||||
pub fn get_template_source(tpl_path: &Path) -> String {
|
||||
let mut path = template_dir();
|
||||
path.push(Path::new(tpl_file));
|
||||
path.push(tpl_path);
|
||||
let mut f = match File::open(&path) {
|
||||
Err(_) => {
|
||||
let msg = format!("unable to open template file '{}'",
|
||||
@ -59,7 +59,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn get_source() {
|
||||
assert_eq!(get_template_source("sub/b.html"), "bar");
|
||||
assert_eq!(get_template_source(Path::new("sub/b.html")), "bar");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
Loading…
x
Reference in New Issue
Block a user