diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2023-05-28 18:42:10 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2023-05-28 18:42:10 +0200 |
commit | e3dfc76fa8665562798b1e89abc2aa0e9141b1fa (patch) | |
tree | 59e3f3f747e0f78d4815100067a9e67fc51fa583 /config | |
parent | cd59216de470874b3f9a71e72418bc381539fdd0 (diff) |
Fix it so languageCode on top level config still works
This is common for monolingual sites, and we broke this in Hugo 0.112.4.
Fixes #11037
Diffstat (limited to 'config')
-rw-r--r-- | config/allconfig/alldecoders.go | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/config/allconfig/alldecoders.go b/config/allconfig/alldecoders.go index c6faf571d..c8944bd2d 100644 --- a/config/allconfig/alldecoders.go +++ b/config/allconfig/alldecoders.go @@ -241,8 +241,24 @@ var allDecoderSetups = map[string]decodeWeight{ key: "languages", decode: func(d decodeWeight, p decodeConfig) error { var err error - p.c.Languages, err = langs.DecodeConfig(p.p.GetStringMap(d.key)) - return err + m := p.p.GetStringMap(d.key) + if len(m) == 1 { + // In v0.112.4 we moved this to the language config, but it's very commmon for mono language sites to have this at the top level. + var first maps.Params + for _, v := range m { + first = v.(maps.Params) + break + } + if _, found := first["languagecode"]; !found { + first["languagecode"] = p.p.GetString("languagecode") + } + } + p.c.Languages, err = langs.DecodeConfig(m) + if err != nil { + return err + } + + return nil }, }, "cascade": { |