From e3dfc76fa8665562798b1e89abc2aa0e9141b1fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Sun, 28 May 2023 18:42:10 +0200 Subject: 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 --- config/allconfig/alldecoders.go | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'config') 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": { -- cgit v1.2.3