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/|") + +}