summaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2023-05-28 18:42:10 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2023-05-28 18:42:10 +0200
commite3dfc76fa8665562798b1e89abc2aa0e9141b1fa (patch)
tree59e3f3f747e0f78d4815100067a9e67fc51fa583 /config
parentcd59216de470874b3f9a71e72418bc381539fdd0 (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.go20
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": {