diff options
author | Daniel Silverstone <dsilvers@digital-scurf.org> | 2021-01-23 13:09:46 +0000 |
---|---|---|
committer | Daniel Silverstone <dsilvers@digital-scurf.org> | 2021-01-23 13:09:46 +0000 |
commit | 6e12f4fd1834689c0149cc13ab04f9965a1faa0e (patch) | |
tree | 65c45c6598fa433fc9e78f0d0e2af245fb6acbd7 /src/codegen.rs | |
parent | 67d02762de8f64b7e1ae511f0d203a152f73f3a8 (diff) | |
download | subplot-6e12f4fd1834689c0149cc13ab04f9965a1faa0e.tar.gz |
codegen: Load helpers before main template
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
Diffstat (limited to 'src/codegen.rs')
-rw-r--r-- | src/codegen.rs | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/codegen.rs b/src/codegen.rs index 3985c96..91f3358 100644 --- a/src/codegen.rs +++ b/src/codegen.rs @@ -32,15 +32,7 @@ pub fn generate_test_program( filename: &Path, ) -> Result<()> { let context = context(doc)?; - let mut tera = tera(&spec)?; - let dirname = spec.template_filename().parent().unwrap(); - for helper in spec.helpers() { - let helper_path = dirname.join(helper); - let helper_content = resource::read_as_string(helper_path)?; - let helper_name = helper.display().to_string(); - tera.add_raw_template(&helper_name, &helper_content)?; - } - let code = tera.render("template", &context).expect("render"); + let code = tera(&spec)?.render("template", &context).expect("render"); write(filename, &code)?; Ok(()) } @@ -69,6 +61,13 @@ fn tera(tmplspec: &TemplateSpec) -> Result<Tera> { tera.register_filter("base64", base64); tera.register_filter("nameslug", nameslug); tera.register_filter("commentsafe", commentsafe); + let dirname = tmplspec.template_filename().parent().unwrap(); + for helper in tmplspec.helpers() { + let helper_path = dirname.join(helper); + let helper_content = resource::read_as_string(helper_path)?; + let helper_name = helper.display().to_string(); + tera.add_raw_template(&helper_name, &helper_content)?; + } let template = resource::read_as_string(tmplspec.template_filename())?; tera.add_raw_template("template", &template)?; Ok(tera) |