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
|
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{
|
sources := []source.ByteSource{
|
||||||
{Name: filepath.FromSlash("sect/doc1.html"), Content: []byte("doc1")},
|
{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("Fish and Chips/doc2.html"), Content: []byte("doc2")},
|
||||||
{Name: filepath.FromSlash("ラーメン/doc3.html"), Content: []byte("doc3")},
|
{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}}")
|
writeSource(t, fs, filepath.Join("layouts", "_default/list.html"), "{{.Title}}")
|
||||||
|
|
||||||
s := buildSingleSite(t, deps.DepsCfg{Fs: fs, Cfg: cfg}, BuildCfg{})
|
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}
|
th := testHelper{s.Cfg, s.Fs, t}
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
doc string
|
doc string
|
||||||
|
|
Loading…
Reference in a new issue