]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
resources/page: Pull internal Page methods into its own interface
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Thu, 2 May 2024 08:41:58 +0000 (10:41 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Thu, 2 May 2024 08:49:02 +0000 (10:49 +0200)
So it doesn't get visible when passing it to `jsonify`.

hugolib/page__common.go
hugolib/page__new.go
resources/page/page.go

index 164776842e7de2a3ca0cf22424fc523908334901..d3b0bd112ddd8ea38c34c1f9f647b911ee3c091b 100644 (file)
@@ -67,6 +67,7 @@ type pageCommon struct {
        page.InSectionPositioner
        page.OutputFormatsProvider
        page.PageMetaProvider
+       page.PageMetaInternalProvider
        page.Positioner
        page.RawContentProvider
        page.RelatedKeywordsProvider
index e14de692549a2a6f2a2417dbf30138e13dbfbfbe..ac396288358fd28d41328eac8ec1ba3bac9d1d39 100644 (file)
@@ -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,
index f995ee64142faffc81142ed19c40b7adf8e4d54f..9647a916b6d6e4bf2804643f255d66fd76f5d129 100644 (file)
@@ -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.