diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2019-05-01 17:51:03 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2019-05-01 19:34:28 +0200 |
commit | bcbed4ebdaf55b67abc521d69bba456c041a7e7d (patch) | |
tree | c99e705bb31267b26ef8206144526af7fffb8318 | |
parent | 009076e5ee88fc46c95a9afd34f82f9386aa282a (diff) |
hugolib: Fix PrevInSection/NextInSection for nested sections
This was broken in Hugo 0.55.0.
Fixes #5883
-rw-r--r-- | hugolib/site.go | 2 | ||||
-rw-r--r-- | hugolib/site_sections_test.go | 45 |
2 files changed, 46 insertions, 1 deletions
diff --git a/hugolib/site.go b/hugolib/site.go index 495225093..7cc80e22f 100644 --- a/hugolib/site.go +++ b/hugolib/site.go @@ -220,7 +220,7 @@ func (s *Site) prepareInits() { if p1.IsPage() && p1.Section() == "" { rootSection = append(rootSection, i) } - if p1.IsSection() && len(p1.SectionsEntries()) <= 1 { + if p1.IsSection() { sectionPages := p1.Pages() for i, p2 := range sectionPages { p2s := p2.(*pageState) diff --git a/hugolib/site_sections_test.go b/hugolib/site_sections_test.go index 3adfb2b57..199947c31 100644 --- a/hugolib/site_sections_test.go +++ b/hugolib/site_sections_test.go @@ -330,3 +330,48 @@ PAG|{{ .Title }}|{{ $sect.InSection . }} th.assertFileContent("public/l1/l2/page/2/index.html", "L1/l2-IsActive: true", "PAG|T2_3|true") } + +func TestNextInSectionNested(t *testing.T) { + t.Parallel() + + pageContent := `--- +title: "The Page" +weight: %d +--- +Some content. +` + createPageContent := func(weight int) string { + return fmt.Sprintf(pageContent, weight) + } + + b := newTestSitesBuilder(t) + b.WithSimpleConfigFile() + b.WithTemplates("_default/single.html", ` +Prev: {{ with .PrevInSection }}{{ .RelPermalink }}{{ end }}| +Next: {{ with .NextInSection }}{{ .RelPermalink }}{{ end }}| +`) + + b.WithContent("blog/page1.md", createPageContent(1)) + b.WithContent("blog/page2.md", createPageContent(2)) + b.WithContent("blog/cool/_index.md", createPageContent(1)) + b.WithContent("blog/cool/cool1.md", createPageContent(1)) + b.WithContent("blog/cool/cool2.md", createPageContent(2)) + b.WithContent("root1.md", createPageContent(1)) + b.WithContent("root2.md", createPageContent(2)) + + b.Build(BuildCfg{}) + + b.AssertFileContent("public/root1/index.html", + "Prev: /root2/|", "Next: |") + b.AssertFileContent("public/root2/index.html", + "Prev: |", "Next: /root1/|") + b.AssertFileContent("public/blog/page1/index.html", + "Prev: /blog/page2/|", "Next: |") + b.AssertFileContent("public/blog/page2/index.html", + "Prev: |", "Next: /blog/page1/|") + b.AssertFileContent("public/blog/cool/cool1/index.html", + "Prev: /blog/cool/cool2/|", "Next: |") + b.AssertFileContent("public/blog/cool/cool2/index.html", + "Prev: |", "Next: /blog/cool/cool1/|") + +} |