diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2017-11-02 08:25:20 +0100 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2017-11-17 11:01:46 +0100 |
commit | 2e0465764b5dacc511b977b1c9aa07324ad0ee9c (patch) | |
tree | ae5a32eb9340e4c0e78e063228821edc29037631 /hugolib/config.go | |
parent | 6233ddf9d19b51f69c0c4a796d88732d1700e585 (diff) |
Add multilingual multihost support
This commit adds multihost support when more than one language is configured and `baseURL` is set per language.
Updates #4027
Diffstat (limited to 'hugolib/config.go')
-rw-r--r-- | hugolib/config.go | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/hugolib/config.go b/hugolib/config.go index acfa0704d..db59253cd 100644 --- a/hugolib/config.go +++ b/hugolib/config.go @@ -19,6 +19,7 @@ import ( "io" "strings" + "github.com/gohugoio/hugo/config" "github.com/gohugoio/hugo/helpers" "github.com/spf13/afero" "github.com/spf13/viper" @@ -80,11 +81,34 @@ func LoadConfig(fs afero.Fs, relativeSourcePath, configFilename string) (*viper. helpers.Deprecated("site config", "disableRobotsTXT", "Use disableKinds= [\"robotsTXT\"]", false) } - loadDefaultSettingsFor(v) + if err := loadDefaultSettingsFor(v); err != nil { + return v, err + } return v, nil } +func loadLanguageSettings(cfg config.Provider) error { + multilingual := cfg.GetStringMap("languages") + var ( + langs helpers.Languages + err error + ) + + if len(multilingual) == 0 { + langs = append(langs, helpers.NewDefaultLanguage(cfg)) + } else { + langs, err = toSortedLanguages(cfg, multilingual) + if err != nil { + return fmt.Errorf("Failed to parse multilingual config: %s", err) + } + } + + cfg.Set("languagesSorted", langs) + + return nil +} + func loadDefaultSettingsFor(v *viper.Viper) error { c, err := helpers.NewContentSpec(v) @@ -154,5 +178,5 @@ func loadDefaultSettingsFor(v *viper.Viper) error { v.SetDefault("debug", false) v.SetDefault("disableFastRender", false) - return nil + return loadLanguageSettings(v) } |