resources/page: Pull internal Page methods into its own interface - hugo - [fork] hugo port for 9front
HTML git clone git@git.drkhsh.at/hugo.git
DIR Log
DIR Files
DIR Refs
DIR Submodules
DIR README
DIR LICENSE
---
DIR commit c892e75fbce3a0ed04cd4edcda7a480a4e36836c
DIR parent 4255d13d3e2e64f6ca9d29b640081992eb31161e
HTML Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date: Thu, 2 May 2024 10:41:58 +0200
resources/page: Pull internal Page methods into its own interface
So it doesn't get visible when passing it to `jsonify`.
Diffstat:
M hugolib/page__common.go | 1 +
M hugolib/page__new.go | 1 +
M resources/page/page.go | 10 +++++++---
3 files changed, 9 insertions(+), 3 deletions(-)
---
DIR diff --git 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
DIR diff --git 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,
DIR diff --git 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.