summaryrefslogtreecommitdiffstats
path: root/hugolib
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2020-11-26 08:32:49 +0100
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2020-11-26 20:41:54 +0100
commite442cf30a215e33b49ce588a9098147282bd883f (patch)
tree2571d16dd2bb8baa28fb9ededbc527b4d6fa18ce /hugolib
parent7e223b3baaef68d6e6f99e28f162362c81deffba (diff)
Fix server rebuild issue with partials referenced from render hooks
Fixes #7990
Diffstat (limited to 'hugolib')
-rw-r--r--hugolib/content_render_hooks_test.go37
-rw-r--r--hugolib/page.go6
-rw-r--r--hugolib/site.go2
3 files changed, 41 insertions, 4 deletions
diff --git a/hugolib/content_render_hooks_test.go b/hugolib/content_render_hooks_test.go
index 17d273a33..13bfe216a 100644
--- a/hugolib/content_render_hooks_test.go
+++ b/hugolib/content_render_hooks_test.go
@@ -20,6 +20,43 @@ import (
qt "github.com/frankban/quicktest"
)
+func TestRenderHookEditNestedPartial(t *testing.T) {
+ config := `
+baseURL="https://example.org"
+workingDir="/mywork"
+`
+ b := newTestSitesBuilder(t).WithWorkingDir("/mywork").WithConfigFile("toml", config).Running()
+
+ b.WithTemplates("_default/single.html", "{{ .Content }}")
+ b.WithTemplates("partials/mypartial1.html", `PARTIAL1 {{ partial "mypartial2.html" }}`)
+ b.WithTemplates("partials/mypartial2.html", `PARTIAL2`)
+ b.WithTemplates("_default/_markup/render-link.html", `Link {{ .Text | safeHTML }}|{{ partial "mypartial1.html" . }}END`)
+
+ b.WithContent("p1.md", `---
+title: P1
+---
+
+[First Link](https://www.google.com "Google's Homepage")
+
+`)
+ b.Build(BuildCfg{})
+
+ b.AssertFileContent("public/p1/index.html", `Link First Link|PARTIAL1 PARTIAL2END`)
+
+ b.EditFiles("layouts/partials/mypartial1.html", `PARTIAL1_EDITED {{ partial "mypartial2.html" }}`)
+
+ b.Build(BuildCfg{})
+
+ b.AssertFileContent("public/p1/index.html", `Link First Link|PARTIAL1_EDITED PARTIAL2END`)
+
+ b.EditFiles("layouts/partials/mypartial2.html", `PARTIAL2_EDITED`)
+
+ b.Build(BuildCfg{})
+
+ b.AssertFileContent("public/p1/index.html", `Link First Link|PARTIAL1_EDITED PARTIAL2_EDITEDEND`)
+
+}
+
func TestRenderHooks(t *testing.T) {
config := `
baseURL="https://example.org"
diff --git a/hugolib/page.go b/hugolib/page.go
index 859834b91..fac3f3492 100644
--- a/hugolib/page.go
+++ b/hugolib/page.go
@@ -409,7 +409,7 @@ func (p *pageState) createRenderHooks(f output.Format) (*hooks.Renderers, error)
if templFound {
renderers.LinkRenderer = hookRenderer{
templateHandler: p.s.Tmpl(),
- Provider: templ.(tpl.Info),
+ SearchProvider: templ.(identity.SearchProvider),
templ: templ,
}
}
@@ -422,7 +422,7 @@ func (p *pageState) createRenderHooks(f output.Format) (*hooks.Renderers, error)
if templFound {
renderers.ImageRenderer = hookRenderer{
templateHandler: p.s.Tmpl(),
- Provider: templ.(tpl.Info),
+ SearchProvider: templ.(identity.SearchProvider),
templ: templ,
}
}
@@ -435,7 +435,7 @@ func (p *pageState) createRenderHooks(f output.Format) (*hooks.Renderers, error)
if templFound {
renderers.HeadingRenderer = hookRenderer{
templateHandler: p.s.Tmpl(),
- Provider: templ.(tpl.Info),
+ SearchProvider: templ.(identity.SearchProvider),
templ: templ,
}
}
diff --git a/hugolib/site.go b/hugolib/site.go
index 3d77b014a..c89995ab0 100644
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -1738,7 +1738,7 @@ var infoOnMissingLayout = map[string]bool{
// where ITEM is the thing being hooked.
type hookRenderer struct {
templateHandler tpl.TemplateHandler
- identity.Provider
+ identity.SearchProvider
templ tpl.Template
}