URI: 
       Fix it so languageCode on top level config still works - hugo - [fork] hugo port for 9front
  HTML git clone git@git.drkhsh.at/hugo.git
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
   DIR README
   DIR LICENSE
       ---
   DIR commit e3dfc76fa8665562798b1e89abc2aa0e9141b1fa
   DIR parent cd59216de470874b3f9a71e72418bc381539fdd0
  HTML Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
       Date:   Sun, 28 May 2023 18:42:10 +0200
       
       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:
         M config/allconfig/alldecoders.go     |      20 ++++++++++++++++++--
         M hugolib/config_test.go              |      22 ++++++++++++++++++++++
       
       2 files changed, 40 insertions(+), 2 deletions(-)
       ---
   DIR diff --git 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": {
   DIR diff --git a/hugolib/config_test.go b/hugolib/config_test.go
       @@ -1044,3 +1044,25 @@ HTACCESS.
                b.AssertFileContent("public/.htaccess", "HTACCESS")
        
        }
       +
       +func TestConfigLanguageCodeTopLevel(t *testing.T) {
       +        t.Parallel()
       +
       +        files := `
       +-- hugo.toml --
       +languageCode = "en-US"
       +-- layouts/index.html --
       +LanguageCode: {{ .Site.LanguageCode }}|{{ site.Language.LanguageCode }}|
       +
       +        
       +`
       +        b := NewIntegrationTestBuilder(
       +                IntegrationTestConfig{
       +                        T:           t,
       +                        TxtarString: files,
       +                },
       +        ).Build()
       +
       +        b.AssertFileContent("public/index.html", "LanguageCode: en-US|en-US|")
       +
       +}