diff options
Diffstat (limited to 'tpl/template.go')
-rw-r--r-- | tpl/template.go | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/tpl/template.go b/tpl/template.go index 2d8ed2943..275ec6b8f 100644 --- a/tpl/template.go +++ b/tpl/template.go @@ -213,11 +213,16 @@ func (t *GoHTMLTemplate) AddInternalShortcode(name, content string) error { func (t *GoHTMLTemplate) AddTemplate(name, tpl string) error { t.checkState() - _, err := t.New(name).Parse(tpl) + templ, err := t.New(name).Parse(tpl) if err != nil { t.errors = append(t.errors, &templateErr{name: name, err: err}) + return err } - return err + if err := applyTemplateTransformers(templ); err != nil { + return err + } + + return nil } func (t *GoHTMLTemplate) AddTemplateFileWithMaster(name, overlayFilename, masterFilename string) error { @@ -264,7 +269,11 @@ func (t *GoHTMLTemplate) AddTemplateFileWithMaster(name, overlayFilename, master // The extra lookup is a workaround, see // * https://github.com/golang/go/issues/16101 // * https://github.com/spf13/hugo/issues/2549 - t.overlays[name] = overlayTpl.Lookup(overlayTpl.Name()) + overlayTpl = overlayTpl.Lookup(overlayTpl.Name()) + if err := applyTemplateTransformers(overlayTpl); err != nil { + return err + } + t.overlays[name] = overlayTpl } return err @@ -291,11 +300,12 @@ func (t *GoHTMLTemplate) AddAceTemplate(name, basePath, innerPath string, baseCo t.errors = append(t.errors, &templateErr{name: name, err: err}) return err } - _, err = ace.CompileResultWithTemplate(t.New(name), parsed, nil) + templ, err := ace.CompileResultWithTemplate(t.New(name), parsed, nil) if err != nil { t.errors = append(t.errors, &templateErr{name: name, err: err}) + return err } - return err + return applyTemplateTransformers(templ) } func (t *GoHTMLTemplate) AddTemplateFile(name, baseTemplatePath, path string) error { @@ -317,9 +327,12 @@ func (t *GoHTMLTemplate) AddTemplateFile(name, baseTemplatePath, path string) er return err } - if _, err := compiler.CompileWithTemplate(t.New(templateName)); err != nil { + templ, err := compiler.CompileWithTemplate(t.New(templateName)) + if err != nil { return err } + + return applyTemplateTransformers(templ) case ".ace": var innerContent, baseContent []byte innerContent, err := afero.ReadFile(hugofs.Source(), path) @@ -353,8 +366,6 @@ func (t *GoHTMLTemplate) AddTemplateFile(name, baseTemplatePath, path string) er return t.AddTemplate(name, string(b)) } - return nil - } func (t *GoHTMLTemplate) GenerateTemplateNameFrom(base, path string) string { @@ -467,7 +478,7 @@ func (t *GoHTMLTemplate) loadTemplates(absPath string, prefix string) { } if err := t.AddTemplateFile(tplName, baseTemplatePath, path); err != nil { - jww.ERROR.Printf("Failed to add template %s: %s", tplName, err) + jww.ERROR.Printf("Failed to add template %s in path %s: %s", tplName, path, err) } } |