diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2016-08-07 14:03:03 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2016-09-06 18:32:17 +0300 |
commit | 2079a23dd89734cea39e523faf46e44201151279 (patch) | |
tree | 5b5163a12cf874863eea889685d65a3c5b56515c /hugolib/multilingual.go | |
parent | 596e0e98e4483d2a0a709412a338ceddb6538757 (diff) |
Make it possible to configure Blackfroday per language
See #2309
Diffstat (limited to 'hugolib/multilingual.go')
-rw-r--r-- | hugolib/multilingual.go | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/hugolib/multilingual.go b/hugolib/multilingual.go index cc9f607f2..9c5342f99 100644 --- a/hugolib/multilingual.go +++ b/hugolib/multilingual.go @@ -25,9 +25,14 @@ func NewLanguage(lang string) *Language { return &Language{Lang: lang, params: make(map[string]interface{})} } -// TODO(bep) multilingo func newDefaultLanguage() *Language { - return NewLanguage("en") + defaultLang := viper.GetString("DefaultContentLanguage") + + if defaultLang == "" { + defaultLang = "en" + } + + return NewLanguage(defaultLang) } type Languages []*Language @@ -74,16 +79,18 @@ func newMultiLingualFromSites(sites ...*Site) (*Multilingual, error) { languages[i] = s.Language } - defaultLang := viper.GetString("DefaultContentLanguage") + return &Multilingual{Languages: languages, DefaultLang: newDefaultLanguage()}, nil - if defaultLang == "" { - defaultLang = "en" - } - - return &Multilingual{Languages: languages, DefaultLang: NewLanguage(defaultLang)}, nil +} +func newMultiLingualDefaultLanguage() *Multilingual { + return newMultiLingualForLanguage(newDefaultLanguage()) } +func newMultiLingualForLanguage(language *Language) *Multilingual { + languages := Languages{language} + return &Multilingual{Languages: languages, DefaultLang: language} +} func (ml *Multilingual) enabled() bool { return len(ml.Languages) > 1 } @@ -92,6 +99,7 @@ func (l *Language) Params() map[string]interface{} { l.paramsInit.Do(func() { // Merge with global config. // TODO(bep) consider making this part of a constructor func. + globalParams := viper.GetStringMap("Params") for k, v := range globalParams { if _, ok := l.params[k]; !ok { @@ -116,6 +124,9 @@ func (l *Language) GetStringMapString(key string) map[string]string { } func (l *Language) Get(key string) interface{} { + if l == nil { + panic("language not set") + } key = strings.ToLower(key) if v, ok := l.params[key]; ok { return v @@ -159,7 +170,7 @@ func toSortedLanguages(l map[string]interface{}) (Languages, error) { } // Put all into the Params map - // TODO(bep) reconsile with the type handling etc. from other params handlers. + // TODO(bep) ml reconsile with the type handling etc. from other params handlers. language.SetParam(loki, v) } |