summaryrefslogtreecommitdiffstats
path: root/hugolib/config.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-11-02 08:25:20 +0100
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2017-11-17 11:01:46 +0100
commit2e0465764b5dacc511b977b1c9aa07324ad0ee9c (patch)
treeae5a32eb9340e4c0e78e063228821edc29037631 /hugolib/config.go
parent6233ddf9d19b51f69c0c4a796d88732d1700e585 (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.go28
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)
}