diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2022-10-26 10:09:38 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2022-10-26 13:00:21 +0200 |
commit | 631d768be9dc2d5175eeacb8bf34ed8233e2201a (patch) | |
tree | 670dbabab18d4215f2495dd07fe012ed4e223438 /resources/page/page_nop.go | |
parent | e5d2a8f6a3121701eb95712b5540989fafaa0c71 (diff) |
Revise the fix for shortcode vs output format nilpointer
We do lazy initialization and (potentially) reuse of an output format's rendered content. We do this evaluation when we
start a new rendering a new output format. There are, however, situation where these borders gets crossed (e.g.
accessing content from another output format). We have a check for this in place for most cases, but not the content
rendering of inner markdown blocks inside shortcodes. This patch applies that same logic to the newly introduced
RenderContent method (which is not available from the templates).
Fixes #10391
Diffstat (limited to 'resources/page/page_nop.go')
-rw-r--r-- | resources/page/page_nop.go | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/resources/page/page_nop.go b/resources/page/page_nop.go index cdc5fd8b1..df3227f0a 100644 --- a/resources/page/page_nop.go +++ b/resources/page/page_nop.go @@ -16,10 +16,12 @@ package page import ( + "bytes" "html/template" "time" "github.com/gohugoio/hugo/identity" + "github.com/gohugoio/hugo/markup/converter" "github.com/gohugoio/hugo/hugofs/files" "github.com/gohugoio/hugo/tpl" @@ -41,7 +43,15 @@ import ( ) var ( - NopPage Page = new(nopPage) + NopPage Page = new(nopPage) + NopContentRenderer ContentRenderer = new(nopContentRenderer) + NopCPageContentRenderer = struct { + OutputFormatPageContentProvider + ContentRenderer + }{ + NopPage, + NopContentRenderer, + } NilPage *nopPage ) @@ -513,3 +523,10 @@ func (p *nopPage) WordCount() int { func (p *nopPage) GetIdentity() identity.Identity { return identity.NewPathIdentity("content", "foo/bar.md") } + +type nopContentRenderer int + +func (r *nopContentRenderer) RenderContent(content []byte, renderTOC bool) (converter.Result, error) { + b := &bytes.Buffer{} + return b, nil +} |