summaryrefslogtreecommitdiff
path: root/src/codegen.rs
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@digital-scurf.org>2021-01-23 13:09:46 +0000
committerDaniel Silverstone <dsilvers@digital-scurf.org>2021-01-23 13:09:46 +0000
commit6e12f4fd1834689c0149cc13ab04f9965a1faa0e (patch)
tree65c45c6598fa433fc9e78f0d0e2af245fb6acbd7 /src/codegen.rs
parent67d02762de8f64b7e1ae511f0d203a152f73f3a8 (diff)
downloadsubplot-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.rs17
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)