Support site menu per language

Fixes #2434
This commit is contained in:
Bjørn Erik Pedersen 2016-09-12 20:41:52 +02:00
parent f0ac26c944
commit a7dc3c082e
2 changed files with 46 additions and 2 deletions

View file

@ -322,6 +322,14 @@ func doTestMultiSitesBuild(t *testing.T, configContent, configSuffix string) {
// Check that the drafts etc. are not built/processed/rendered. // Check that the drafts etc. are not built/processed/rendered.
assertShouldNotBuild(t, sites) assertShouldNotBuild(t, sites)
// en and nn have custom site menus
require.Len(t, frSite.Menus, 0, "fr: "+configSuffix)
require.Len(t, enSite.Menus, 1, "en: "+configSuffix)
require.Len(t, nnSite.Menus, 1, "nn: "+configSuffix)
require.Equal(t, "Home", enSite.Menus["main"].ByName()[0].Name)
require.Equal(t, "Heim", nnSite.Menus["main"].ByName()[0].Name)
} }
func TestMultiSitesRebuild(t *testing.T) { func TestMultiSitesRebuild(t *testing.T) {
@ -621,6 +629,10 @@ weight = 10
title = "English" title = "English"
[Languages.en.blackfriday] [Languages.en.blackfriday]
angledQuotes = false angledQuotes = false
[[Languages.en.menu.main]]
url = "/"
name = "Home"
weight = 0
[Languages.fr] [Languages.fr]
weight = 20 weight = 20
@ -633,6 +645,10 @@ weight = 30
title = "Nynorsk" title = "Nynorsk"
[Languages.nn.Taxonomies] [Languages.nn.Taxonomies]
lag = "lag" lag = "lag"
[[Languages.nn.menu.main]]
url = "/"
name = "Heim"
weight = 1
[Languages.nb] [Languages.nb]
weight = 40 weight = 40
@ -666,6 +682,11 @@ Languages:
title: "English" title: "English"
blackfriday: blackfriday:
angledQuotes: false angledQuotes: false
menu:
main:
- url: "/"
name: "Home"
weight: 0
fr: fr:
weight: 20 weight: 20
title: "Français" title: "Français"
@ -676,6 +697,11 @@ Languages:
title: "Nynorsk" title: "Nynorsk"
Taxonomies: Taxonomies:
lag: "lag" lag: "lag"
menu:
main:
- url: "/"
name: "Heim"
weight: 1
nb: nb:
weight: 40 weight: 40
title: "Bokmål" title: "Bokmål"
@ -708,6 +734,15 @@ var multiSiteJSONConfig = `
"title": "English", "title": "English",
"blackfriday": { "blackfriday": {
"angledQuotes": false "angledQuotes": false
},
"menu": {
"main": [
{
"url": "/",
"name": "Home",
"weight": 0
}
]
} }
}, },
"fr": { "fr": {
@ -722,6 +757,15 @@ var multiSiteJSONConfig = `
"title": "Nynorsk", "title": "Nynorsk",
"Taxonomies": { "Taxonomies": {
"lag": "lag" "lag": "lag"
},
"menu": {
"main": [
{
"url": "/",
"name": "Heim",
"weight": 1
}
]
} }
}, },
"nb": { "nb": {

View file

@ -1349,7 +1349,7 @@ func (s *Site) getMenusFromConfig() Menus {
ret := Menus{} ret := Menus{}
if menus := viper.GetStringMap("menu"); menus != nil { if menus := s.Language.GetStringMap("menu"); menus != nil {
for name, menu := range menus { for name, menu := range menus {
m, err := cast.ToSliceE(menu) m, err := cast.ToSliceE(menu)
if err != nil { if err != nil {
@ -1411,7 +1411,7 @@ func (s *Site) assembleMenus() {
} }
} }
sectionPagesMenu := viper.GetString("SectionPagesMenu") sectionPagesMenu := s.Language.GetString("SectionPagesMenu")
sectionPagesMenus := make(map[string]interface{}) sectionPagesMenus := make(map[string]interface{})
//creating flat hash //creating flat hash
for _, p := range s.Pages { for _, p := range s.Pages {