summaryrefslogtreecommitdiffstats
path: root/resources/page/page_lazy_contentprovider.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2024-08-13 15:49:56 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2024-08-29 16:45:21 +0200
commit37609262dcddac6d3358412b10214111b4d4dc3d (patch)
tree60f1370ec79454742c7eb727ca1bb9156aecb296 /resources/page/page_lazy_contentprovider.go
parent2b5c335e933cbd8e4e8569f206add5ec1bccd8e9 (diff)
downloadhugo-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.go11
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)