firstNN := nnSite.RegularPages()[0]
c.Assert(len(firstNN.Sites()), qt.Equals, 4)
- c.Assert(firstNN.Sites().First().Language().Lang, qt.Equals, "en")
+ c.Assert(firstNN.Sites().Default().Language().Lang, qt.Equals, "en")
nnBundle := nnSite.getPageOldVersion("page", "bundle")
enBundle := enSite.getPageOldVersion("page", "bundle")
// Sites represents an ordered list of sites (languages).
type Sites []Site
-// First is a convenience method to get the first Site, i.e. the main language.
+// Deprecated: Use .Sites.Default instead.
func (s Sites) First() Site {
+ hugo.Deprecate(".Sites.First", "Use .Sites.Default instead.", "v0.127.0")
+ return s.Default()
+}
+
+// Default is a convenience method to get the site corresponding to the default
+// content language.
+func (s Sites) Default() Site {
if len(s) == 0 {
return nil
}
return s.s.Language().Lang
}
-// // Deprecated: Use .Site.Params instead.
+// Deprecated: Use .Site.Params instead.
func (s *siteWrapper) Social() map[string]string {
return s.s.Social()
}
--- /dev/null
+// Copyright 2024 The Hugo Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package page_test
+
+import (
+ "testing"
+
+ "github.com/gohugoio/hugo/hugolib"
+)
+
+// Issue 12513
+func TestPageSiteSitesDefault(t *testing.T) {
+ t.Parallel()
+
+ files := `
+-- hugo.toml --
+disableKinds = ['page','rss','section','sitemap','taxonomy','term']
+defaultContentLanguage = 'de'
+defaultContentLanguageInSubdir = true
+[languages.en]
+languageName = 'English'
+weight = 1
+[languages.de]
+languageName = 'Deutsch'
+weight = 2
+-- layouts/index.html --
+{{ .Site.Sites.Default.Language.LanguageName }}
+`
+
+ b := hugolib.Test(t, files)
+
+ b.AssertFileContent("public/de/index.html", "Deutsch")
+}