diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2024-08-13 15:49:56 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2024-08-29 16:45:21 +0200 |
commit | 37609262dcddac6d3358412b10214111b4d4dc3d (patch) | |
tree | 60f1370ec79454742c7eb727ca1bb9156aecb296 /resources/page/page_lazy_contentprovider.go | |
parent | 2b5c335e933cbd8e4e8569f206add5ec1bccd8e9 (diff) | |
download | hugo-37609262dcddac6d3358412b10214111b4d4dc3d.tar.gz hugo-37609262dcddac6d3358412b10214111b4d4dc3d.zip |
Add Page.Contents with scope support
Note that this also adds a new `.ContentWithoutSummary` method, and to do that we had to unify the different summary types:
Both `auto` and `manual` now returns HTML. Before this commit, `auto` would return plain text. This could be considered to be a slightly breaking change, but for the better: Now you can treat the `.Summary` the same without thinking about where it comes from, and if you want plain text, pipe it into `{{ .Summary | plainify }}`.
Fixes #8680
Fixes #12761
Fixes #12778
Fixes #716
Diffstat (limited to 'resources/page/page_lazy_contentprovider.go')
-rw-r--r-- | resources/page/page_lazy_contentprovider.go | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/resources/page/page_lazy_contentprovider.go b/resources/page/page_lazy_contentprovider.go index 665b2d003..8e66a03e4 100644 --- a/resources/page/page_lazy_contentprovider.go +++ b/resources/page/page_lazy_contentprovider.go @@ -35,6 +35,7 @@ type OutputFormatContentProvider interface { // OutputFormatPageContentProvider holds the exported methods from Page that are "outputFormat aware". type OutputFormatPageContentProvider interface { + MarkupProvider ContentProvider TableOfContentsProvider PageRenderProvider @@ -74,6 +75,11 @@ func (lcp *LazyContentProvider) Reset() { lcp.init.Reset() } +func (lcp *LazyContentProvider) Markup(opts ...any) Markup { + lcp.init.Do(context.Background()) + return lcp.cp.Markup(opts...) +} + func (lcp *LazyContentProvider) TableOfContents(ctx context.Context) template.HTML { lcp.init.Do(ctx) return lcp.cp.TableOfContents(ctx) @@ -89,6 +95,11 @@ func (lcp *LazyContentProvider) Content(ctx context.Context) (any, error) { return lcp.cp.Content(ctx) } +func (lcp *LazyContentProvider) ContentWithoutSummary(ctx context.Context) (template.HTML, error) { + lcp.init.Do(ctx) + return lcp.cp.ContentWithoutSummary(ctx) +} + func (lcp *LazyContentProvider) Plain(ctx context.Context) string { lcp.init.Do(ctx) return lcp.cp.Plain(ctx) |