diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2020-11-26 08:32:49 +0100 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2020-11-26 20:41:54 +0100 |
commit | e442cf30a215e33b49ce588a9098147282bd883f (patch) | |
tree | 2571d16dd2bb8baa28fb9ededbc527b4d6fa18ce /hugolib | |
parent | 7e223b3baaef68d6e6f99e28f162362c81deffba (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.go | 37 | ||||
-rw-r--r-- | hugolib/page.go | 6 | ||||
-rw-r--r-- | hugolib/site.go | 2 |
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 } |