hugolib: Add validation for defaultContentLanguage

When `languages` are defined, then `defaultContentLanguage` must match one of those.

Fixes #4298
This commit is contained in:
Bjørn Erik Pedersen 2018-01-19 08:24:10 +01:00
parent cd77968284
commit 4d5e4f379a
No known key found for this signature in database
GPG key ID: 330E6E2BD4859D8F

View file

@ -131,6 +131,22 @@ func loadLanguageSettings(cfg config.Provider, oldLangs helpers.Languages) error
} }
} }
defaultLang := cfg.GetString("defaultContentLanguage")
// The defaultContentLanguage is something the user has to decide, but it needs
// to match a language in the language definition list.
langExists := false
for _, lang := range langs {
if lang.Lang == defaultLang {
langExists = true
break
}
}
if !langExists {
return fmt.Errorf("site config value %q for defaultContentLanguage does not match any language definition", defaultLang)
}
cfg.Set("languagesSorted", langs) cfg.Set("languagesSorted", langs)
cfg.Set("multilingual", len(langs) > 1) cfg.Set("multilingual", len(langs) > 1)