diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2023-03-05 10:32:00 +0100 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2023-03-05 12:51:57 +0100 |
commit | b83050cb40fc11ba36ca2680467fd8d4c6f2e516 (patch) | |
tree | 318b1b7edd0ea3d2a97f352c90bb215e46429de7 /resources | |
parent | df5608f8a0706c6519f50b5497e36c21b8e790be (diff) |
Fix .Fragments when called cross sites on uninitialized output format
Fixes #10794
Diffstat (limited to 'resources')
-rw-r--r-- | resources/page/page.go | 6 | ||||
-rw-r--r-- | resources/page/page_lazy_contentprovider.go | 12 |
2 files changed, 15 insertions, 3 deletions
diff --git a/resources/page/page.go b/resources/page/page.go index 8f89142b3..6f6f1d100 100644 --- a/resources/page/page.go +++ b/resources/page/page.go @@ -334,9 +334,6 @@ type PageWithoutContent interface { // Used in change/dependency tracking. identity.Provider - // Fragments returns the fragments for this page. - Fragments(context.Context) *tableofcontents.Fragments - // Headings returns the headings for this page when a filter is set. // This is currently only triggered with the Related content feature // and the "fragments" type of index. @@ -407,6 +404,9 @@ type SitesProvider interface { type TableOfContentsProvider interface { // TableOfContents returns the table of contents for the page rendered as HTML. TableOfContents(context.Context) template.HTML + + // Fragments returns the fragments for this page. + Fragments(context.Context) *tableofcontents.Fragments } // TranslationsProvider provides access to any translations. diff --git a/resources/page/page_lazy_contentprovider.go b/resources/page/page_lazy_contentprovider.go index 400b9e4f0..2d647e90c 100644 --- a/resources/page/page_lazy_contentprovider.go +++ b/resources/page/page_lazy_contentprovider.go @@ -19,6 +19,7 @@ import ( "github.com/gohugoio/hugo/lazy" "github.com/gohugoio/hugo/markup/converter" + "github.com/gohugoio/hugo/markup/tableofcontents" ) // OutputFormatContentProvider represents the method set that is "outputFormat aware" and that we @@ -73,6 +74,17 @@ func (lcp *LazyContentProvider) Reset() { lcp.init.Reset() } +func (lcp *LazyContentProvider) TableOfContents(ctx context.Context) template.HTML { + lcp.init.Do(ctx) + return lcp.cp.TableOfContents(ctx) + +} + +func (lcp *LazyContentProvider) Fragments(ctx context.Context) *tableofcontents.Fragments { + lcp.init.Do(ctx) + return lcp.cp.Fragments(ctx) +} + func (lcp *LazyContentProvider) Content(ctx context.Context) (any, error) { lcp.init.Do(ctx) return lcp.cp.Content(ctx) |