mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-07 20:30:36 -05:00
parent
5714531f34
commit
7ad721fd78
2 changed files with 37 additions and 0 deletions
|
@ -1698,6 +1698,36 @@ func (s *Site) assembleSections() {
|
|||
wp.Page.PrevInSection = s.Sections[k][i+1].Page
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
var (
|
||||
sectionsParamId = "mainSections"
|
||||
sectionsParamIdLower = strings.ToLower(sectionsParamId)
|
||||
mainSections interface{}
|
||||
found bool
|
||||
)
|
||||
|
||||
if mainSections, found = s.Info.Params[sectionsParamIdLower]; !found {
|
||||
// Pick the section with most regular pages
|
||||
var (
|
||||
chosenSection string
|
||||
pageCount int
|
||||
)
|
||||
|
||||
for sect, pages := range s.Sections {
|
||||
if pages.Count() >= pageCount {
|
||||
chosenSection = sect
|
||||
pageCount = pages.Count()
|
||||
}
|
||||
}
|
||||
mainSections = []string{chosenSection}
|
||||
|
||||
// Try to make this as backwards compatible as possible.
|
||||
s.Info.Params[sectionsParamId] = mainSections
|
||||
s.Info.Params[sectionsParamIdLower] = mainSections
|
||||
} else {
|
||||
s.Info.Params[sectionsParamId] = mainSections
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -400,6 +400,8 @@ func doTestSectionNaming(t *testing.T, canonify, uglify, pluralize bool) {
|
|||
|
||||
sources := []source.ByteSource{
|
||||
{Name: filepath.FromSlash("sect/doc1.html"), Content: []byte("doc1")},
|
||||
// Add one more page to sect to make sure sect is picked in mainSections
|
||||
{Name: filepath.FromSlash("sect/sect.html"), Content: []byte("sect")},
|
||||
{Name: filepath.FromSlash("Fish and Chips/doc2.html"), Content: []byte("doc2")},
|
||||
{Name: filepath.FromSlash("ラーメン/doc3.html"), Content: []byte("doc3")},
|
||||
}
|
||||
|
@ -419,6 +421,11 @@ func doTestSectionNaming(t *testing.T, canonify, uglify, pluralize bool) {
|
|||
writeSource(t, fs, filepath.Join("layouts", "_default/list.html"), "{{.Title}}")
|
||||
|
||||
s := buildSingleSite(t, deps.DepsCfg{Fs: fs, Cfg: cfg}, BuildCfg{})
|
||||
|
||||
mainSections, err := s.Info.Param("mainSections")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, mainSections, []string{"sect"})
|
||||
|
||||
th := testHelper{s.Cfg, s.Fs, t}
|
||||
tests := []struct {
|
||||
doc string
|
||||
|
|
Loading…
Reference in a new issue