]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
content adapter: Fix site.GetPage using the base part of the path
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sun, 2 Jun 2024 10:54:14 +0000 (12:54 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sun, 2 Jun 2024 11:30:52 +0000 (13:30 +0200)
Fixes #12561

hugolib/content_map_page.go
hugolib/pagecollections_test.go

index 66baea3d1f90df536a7cc7c67dfb3dbb433a61f8..a8f5b5fd74542e4e957c39cdf5a61735351cfc77 100644 (file)
@@ -932,8 +932,8 @@ func newPageMap(i int, s *Site, mcache *dynacache.Cache, pageTrees *pageTrees) *
                                LockType: doctree.LockTypeRead,
                                Handle: func(s string, n contentNodeI, match doctree.DimensionFlag) (bool, error) {
                                        p := n.(*pageState)
-                                       if p.File() != nil {
-                                               add(p.File().FileInfo().Meta().PathInfo.BaseNameNoIdentifier(), p)
+                                       if p.PathInfo() != nil {
+                                               add(p.PathInfo().BaseNameNoIdentifier(), p)
                                        }
                                        return false, nil
                                },
index be81c3a66378e00ad9618b8098a10c5864d19cf3..96f1afe3d19c13d9ec65c6ca79d6e367de7c07a8 100644 (file)
@@ -693,3 +693,36 @@ draft: true
        b.AssertFileContent("public/s1-foo/index.html", "/s1-foo/: Pages: /s1-foo/p2/|/s1-foo/s2-foo/|/s1-foo/s2/|$")
        b.AssertFileContent("public/s1-foo/s2/index.html", "/s1-foo/s2/: Pages: /s1-foo/s2/p3/|$")
 }
+
+func TestGetPageContentAdapterBaseIssue12561(t *testing.T) {
+       t.Parallel()
+
+       files := `
+-- hugo.toml --
+disableKinds = ['rss','section','sitemap','taxonomy','term']
+-- layouts/index.html --
+Test A: {{ (site.GetPage "/s1/p1").Title }}
+Test B: {{ (site.GetPage "p1").Title }}
+Test C: {{ (site.GetPage "/s2/p2").Title }}
+Test D: {{ (site.GetPage "p2").Title }}
+-- layouts/_default/single.html --
+{{ .Title }}
+-- content/s1/p1.md --
+---
+title: p1
+---
+-- content/s2/_content.gotmpl --
+{{ .AddPage (dict "path" "p2" "title" "p2") }}
+`
+
+       b := Test(t, files)
+
+       b.AssertFileExists("public/s1/p1/index.html", true)
+       b.AssertFileExists("public/s2/p2/index.html", true)
+       b.AssertFileContent("public/index.html",
+               "Test A: p1",
+               "Test B: p1",
+               "Test C: p2",
+               "Test D: p2", // fails
+       )
+}