From c892e75fbce3a0ed04cd4edcda7a480a4e36836c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Thu, 2 May 2024 10:41:58 +0200 Subject: [PATCH] resources/page: Pull internal Page methods into its own interface So it doesn't get visible when passing it to `jsonify`. --- hugolib/page__common.go | 1 + hugolib/page__new.go | 1 + resources/page/page.go | 10 +++++++--- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/hugolib/page__common.go b/hugolib/page__common.go index 164776842e7..d3b0bd112dd 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 e14de692549..ac396288358 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 f995ee64142..9647a916b6d 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.