summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2024-05-02 10:41:58 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2024-05-02 10:49:02 +0200
commitc892e75fbce3a0ed04cd4edcda7a480a4e36836c (patch)
treeedf7862034e6072cf9ce70901c83fcde75371852
parent4255d13d3e2e64f6ca9d29b640081992eb31161e (diff)
resources/page: Pull internal Page methods into its own interface
So it doesn't get visible when passing it to `jsonify`.
-rw-r--r--hugolib/page__common.go1
-rw-r--r--hugolib/page__new.go1
-rw-r--r--resources/page/page.go10
3 files changed, 9 insertions, 3 deletions
diff --git a/hugolib/page__common.go b/hugolib/page__common.go
index 164776842..d3b0bd112 100644
--- a/hugolib/page__common.go
+++ b/hugolib/page__common.go
@@ -67,6 +67,7 @@ type pageCommon struct {
page.InSectionPositioner
page.OutputFormatsProvider
page.PageMetaProvider
+ page.PageMetaInternalProvider
page.Positioner
page.RawContentProvider
page.RelatedKeywordsProvider
diff --git a/hugolib/page__new.go b/hugolib/page__new.go
index e14de6925..ac3962883 100644
--- a/hugolib/page__new.go
+++ b/hugolib/page__new.go
@@ -184,6 +184,7 @@ func (h *HugoSites) newPage(m *pageMeta) (*pageState, *paths.Path, error) {
ResourceNameTitleProvider: m,
ResourceParamsProvider: m,
PageMetaProvider: m,
+ PageMetaInternalProvider: m,
RelatedKeywordsProvider: m,
OutputFormatsProvider: page.NopPage,
ResourceTypeProvider: pageTypesProvider,
diff --git a/resources/page/page.go b/resources/page/page.go
index f995ee641..9647a916b 100644
--- a/resources/page/page.go
+++ b/resources/page/page.go
@@ -225,9 +225,6 @@ type PageMetaProvider interface {
// to the source of this Page. It will be relative to any content root.
Path() string
- // This is for internal use only.
- PathInfo() *paths.Path
-
// The slug, typically defined in front matter.
Slug() string
@@ -253,6 +250,12 @@ type PageMetaProvider interface {
Weight() int
}
+// PageMetaInternalProvider provides internal page metadata.
+type PageMetaInternalProvider interface {
+ // This is for internal use only.
+ PathInfo() *paths.Path
+}
+
// PageRenderProvider provides a way for a Page to render content.
type PageRenderProvider interface {
// Render renders the given layout with this Page as context.
@@ -273,6 +276,7 @@ type PageWithoutContent interface {
RenderShortcodesProvider
resource.Resource
PageMetaProvider
+ PageMetaInternalProvider
resource.LanguageProvider
// For pages backed by a file.