]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
tpl: Make {{ template "partials/foo.html" . }} work in older setups
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Mon, 14 Apr 2025 09:05:07 +0000 (11:05 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Mon, 14 Apr 2025 12:38:22 +0000 (14:38 +0200)
Fixes #13599

tpl/templates/templates_integration_test.go
tpl/tplimpl/legacy_integration_test.go [new file with mode: 0644]
tpl/tplimpl/templates.go
tpl/tplimpl/templatestore.go
tpl/tplimpl/tplimpl_integration_test.go

index 93922b4c42b63e8a357a8cf4688a035fac5d91cb..a0a5e385a4704d5737d5480e68d5f6498e553662 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright 2024 The Hugo Authors. All rights reserved.
+// Copyright 2025 The Hugo Authors. All rights reserved.
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
diff --git a/tpl/tplimpl/legacy_integration_test.go b/tpl/tplimpl/legacy_integration_test.go
new file mode 100644 (file)
index 0000000..a96e35f
--- /dev/null
@@ -0,0 +1,38 @@
+// Copyright 2025 The Hugo Authors. All rights reserved.
+//
+// Portions Copyright The Go Authors.
+
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package tplimpl_test
+
+import (
+       "testing"
+
+       "github.com/gohugoio/hugo/hugolib"
+)
+
+func TestLegacyPartialIssue13599(t *testing.T) {
+       t.Parallel()
+
+       files := `
+-- hugo.toml --
+-- layouts/partials/mypartial.html --
+Mypartial.
+-- layouts/_default/index.html --
+mypartial:   {{ template "partials/mypartial.html" . }}
+
+`
+       b := hugolib.Test(t, files)
+
+       b.AssertFileContent("public/index.html", "Mypartial.")
+}
index 4c3ad3be1ab317cad96bf99cfa06cc6f641bf5c4..f3f98f62299a47c656ca69f1878a73594a42846c 100644 (file)
@@ -99,7 +99,14 @@ func (t *templateNamespace) parseTemplate(ti *TemplInfo) error {
                                        return err
                                }
                        }
+               }
 
+               // Issue #13599.
+               if ti.category == CategoryPartial && ti.Fi != nil && ti.Fi.Meta().PathInfo.Section() == "partials" {
+                       aliasName := strings.TrimPrefix(name, "_")
+                       if _, err := prototype.AddParseTree(aliasName, templ.(*htmltemplate.Template).Tree); err != nil {
+                               return err
+                       }
                }
        }
 
index 8483b7df033094b0ac6a1bfc46676d4da0bb760b..2e332e382bc76d3c060c9c086cfab24491362d49 100644 (file)
@@ -1,3 +1,18 @@
+// Copyright 2025 The Hugo Authors. All rights reserved.
+//
+// Portions Copyright The Go Authors.
+
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
 package tplimpl
 
 import (
index 8b80d5b60722af995ed72ba11f586db782a12509..b628989237aa1dcbf5c50071596e97db0149e37e 100644 (file)
@@ -1,3 +1,18 @@
+// Copyright 2025 The Hugo Authors. All rights reserved.
+//
+// Portions Copyright The Go Authors.
+
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
 package tplimpl_test
 
 import (