hugolib: Avoid repeated Viper loads of sectionPagesMenu
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Wed, 23 Nov 2016 21:06:15 +0000 (22:06 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Thu, 24 Nov 2016 09:54:15 +0000 (10:54 +0100)
See #2728

hugolib/page.go
hugolib/site.go

index 583ff8ba46b35f3e9eae510160d7423a37d8fb2f..883d70c43628abf8a55f299735cf40e8fd9a021c 100644 (file)
@@ -1092,7 +1092,7 @@ func (p *Page) getParam(key string, stringToLower bool) interface{} {
 
 func (p *Page) HasMenuCurrent(menuID string, me *MenuEntry) bool {
 
-       sectionPagesMenu := helpers.Config().GetString("SectionPagesMenu")
+       sectionPagesMenu := p.Site.sectionPagesMenu
 
        // page is labeled as "shadow-member" of the menu with the same identifier as the section
        if sectionPagesMenu != "" && p.Section() != "" && sectionPagesMenu == menuID && p.Section() == me.Identifier {
index 0c37b388261ed92d67559bf1cc07570a01b17d44..01539bccc445844717df0997bef84d87831c6af2 100644 (file)
@@ -191,6 +191,7 @@ type SiteInfo struct {
        LanguagePrefix                 string
        Languages                      helpers.Languages
        defaultContentLanguageInSubdir bool
+       sectionPagesMenu               string
 
        pathSpec *helpers.PathSpec
 }
@@ -937,6 +938,7 @@ func (s *Site) initializeSiteInfo() {
                LanguagePrefix:                 languagePrefix,
                Languages:                      languages,
                defaultContentLanguageInSubdir: defaultContentInSubDir,
+               sectionPagesMenu:               lang.GetString("sectionPagesMenu"),
                GoogleAnalytics:                lang.GetString("googleAnalytics"),
                BuildDrafts:                    viper.GetBool("buildDrafts"),
                canonifyURLs:                   viper.GetBool("canonifyURLs"),
@@ -1412,7 +1414,7 @@ func (s *Site) assembleMenus() {
                }
        }
 
-       sectionPagesMenu := s.Language.GetString("sectionPagesMenu")
+       sectionPagesMenu := s.Info.sectionPagesMenu
        sectionPagesMenus := make(map[string]interface{})
        //creating flat hash
        pages := s.Pages