From: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date: Tue, 4 Apr 2017 15:21:04 +0000 (+0200)
Subject: tplimpl: Reintroduce the double template lookup in Partial
X-Git-Tag: v0.20~28
X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=bc36d468;p=brevno-suite%2Fhugo

tplimpl: Reintroduce the double template lookup in Partial

So it works as before without the html suffix.

Fixes #3272
---

diff --git a/tpl/tplimpl/templateFuncster.go b/tpl/tplimpl/templateFuncster.go
index 1fbaebd4..ddcafedf 100644
--- a/tpl/tplimpl/templateFuncster.go
+++ b/tpl/tplimpl/templateFuncster.go
@@ -63,6 +63,10 @@ func (t *templateFuncster) partial(name string, contextList ...interface{}) (int
 
 	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)
diff --git a/tpl/tplimpl/template_funcs_test.go b/tpl/tplimpl/template_funcs_test.go
index b50765fc..075581c6 100644
--- a/tpl/tplimpl/template_funcs_test.go
+++ b/tpl/tplimpl/template_funcs_test.go
@@ -2908,6 +2908,40 @@ func TestPartialHTMLAndText(t *testing.T) {
 
 }
 
+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())