summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2025-04-14 11:05:07 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2025-04-14 14:38:22 +0200
commit1e0287f4729f477c6b956fc50f0bfde0edecaa33 (patch)
tree59966ebf74b08561d90a6a036f60ff12d1a33481
parent915ba3f7f0b2f2a2984c00801f0a1ac8f84f8e92 (diff)
downloadhugo-1e0287f4729f477c6b956fc50f0bfde0edecaa33.tar.gz
hugo-1e0287f4729f477c6b956fc50f0bfde0edecaa33.zip
tpl: Make {{ template "partials/foo.html" . }} work in older setups
Fixes #13599
-rw-r--r--tpl/templates/templates_integration_test.go2
-rw-r--r--tpl/tplimpl/legacy_integration_test.go38
-rw-r--r--tpl/tplimpl/templates.go7
-rw-r--r--tpl/tplimpl/templatestore.go15
-rw-r--r--tpl/tplimpl/tplimpl_integration_test.go15
5 files changed, 76 insertions, 1 deletions
diff --git a/tpl/templates/templates_integration_test.go b/tpl/templates/templates_integration_test.go
index 93922b4c4..a0a5e385a 100644
--- a/tpl/templates/templates_integration_test.go
+++ b/tpl/templates/templates_integration_test.go
@@ -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
index 000000000..a96e35fca
--- /dev/null
+++ b/tpl/tplimpl/legacy_integration_test.go
@@ -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.")
+}
diff --git a/tpl/tplimpl/templates.go b/tpl/tplimpl/templates.go
index 4c3ad3be1..f3f98f622 100644
--- a/tpl/tplimpl/templates.go
+++ b/tpl/tplimpl/templates.go
@@ -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
+ }
}
}
diff --git a/tpl/tplimpl/templatestore.go b/tpl/tplimpl/templatestore.go
index 8483b7df0..2e332e382 100644
--- a/tpl/tplimpl/templatestore.go
+++ b/tpl/tplimpl/templatestore.go
@@ -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 (
diff --git a/tpl/tplimpl/tplimpl_integration_test.go b/tpl/tplimpl/tplimpl_integration_test.go
index 8b80d5b60..b62898923 100644
--- a/tpl/tplimpl/tplimpl_integration_test.go
+++ b/tpl/tplimpl/tplimpl_integration_test.go
@@ -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 (