diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2020-05-24 13:03:32 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2020-05-24 13:20:57 +0200 |
commit | 9698b0dab11f52d52145e85ff71311d2f103cb4e (patch) | |
tree | 29747eb4d36a3bf34f667c6182291dde2846b6b1 /hugolib/page__output.go | |
parent | 32344fe3db862584e3f926d63bdf33b7fa7d22f7 (diff) |
Fix RenderString vs render hooks
Fixes #7265
Diffstat (limited to 'hugolib/page__output.go')
-rw-r--r-- | hugolib/page__output.go | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/hugolib/page__output.go b/hugolib/page__output.go index 7d5b78aae..1792e8d6a 100644 --- a/hugolib/page__output.go +++ b/hugolib/page__output.go @@ -96,24 +96,28 @@ func (o *pageOutput) initRenderHooks() error { return nil } - ps := o.cp.p + var initErr error - c := ps.getContentConverter() - if c == nil || !c.Supports(converter.FeatureRenderHooks) { - return nil - } + o.cp.renderHooks.init.Do(func() { + ps := o.cp.p - h, err := ps.createRenderHooks(o.f) - if err != nil { - return err - } - if h == nil { - return nil - } + c := ps.getContentConverter() + if c == nil || !c.Supports(converter.FeatureRenderHooks) { + return + } + + h, err := ps.createRenderHooks(o.f) + if err != nil { + initErr = err + } + if h == nil { + return + } - o.cp.renderHooks = h + o.cp.renderHooks.hooks = h + }) - return nil + return initErr } |