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.