ref: bc36d468ab56b5bcf01c3dc1478b1818dd17e4ff
parent: 7da1b65968cd78970de8c8b61f5056dc7b0ec6b2
author: Bjørn Erik Pedersen <[email protected]>
date: Tue Apr 4 13:21:04 EDT 2017
tplimpl: Reintroduce the double template lookup in Partial So it works as before without the html suffix. Fixes #3272
--- a/tpl/tplimpl/templateFuncster.go
+++ b/tpl/tplimpl/templateFuncster.go
@@ -63,6 +63,10 @@
for _, n := range []string{"partials/" + name, "theme/partials/" + name} {
templ := t.Tmpl.Lookup(n)
+ if templ == nil {
+ // For legacy reasons.
+ templ = t.Tmpl.Lookup(n + ".html")
+ }
if templ != nil {
b := bp.GetBuffer()
defer bp.PutBuffer(b)
--- a/tpl/tplimpl/template_funcs_test.go
+++ b/tpl/tplimpl/template_funcs_test.go
@@ -2908,6 +2908,40 @@
}
+func TestPartialHTMLWithNoSuffix(t *testing.T) {
+ t.Parallel()
+ config := newDepsConfig(viper.New())
+
+ data := struct {
+ Name string
+ }{
+ Name: "a",
+ }
+
+ config.WithTemplate = func(templ tpl.TemplateHandler) error {
+ if err := templ.AddTemplate("htmlTemplate.html", `HTML Test Partial: {{ partial "test" . -}}`); err != nil {
+ return err
+ }
+
+ if err := templ.AddTemplate("partials/test.html", "HTML Name: {{ .Name }}"); err != nil {
+ return err
+ }
+ return nil
+ }
+
+ de, err := deps.New(config)
+ require.NoError(t, err)
+ require.NoError(t, de.LoadResources())
+
+ templ := de.Tmpl.Lookup("htmlTemplate.html")
+ require.NotNil(t, templ)
+ resultHTML, err := templ.ExecuteToString(data)
+ require.NoError(t, err)
+
+ require.Contains(t, resultHTML, "HTML Test Partial: HTML Name: a")
+
+}
+
func TestPartialWithError(t *testing.T) {
t.Parallel()
config := newDepsConfig(viper.New())