]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
resources/page: Deprecate .Sites.First in favor of .Sites.Default
authorJoe Mooring <joe.mooring@veriphor.com>
Sat, 18 May 2024 18:15:21 +0000 (11:15 -0700)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sat, 1 Jun 2024 16:02:19 +0000 (18:02 +0200)
Closes #12513

hugolib/pages_language_merge_test.go
resources/page/site.go
resources/page/site_integration_test.go [new file with mode: 0644]

index 8a5d6c184b9ce28c50c85a6540b1376f85368965..3862d7cf05bb18b611ee7cb40dd35cfea6c3e97a 100644 (file)
@@ -68,7 +68,7 @@ func TestMergeLanguages(t *testing.T) {
 
        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")
index df33485eb1a835af4eb35ad1be5fa1db4c57247c..56f438cb650f193db44154bf9aafda374cd799ac 100644 (file)
@@ -139,8 +139,15 @@ type Site interface {
 // 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
        }
@@ -165,7 +172,7 @@ func (s *siteWrapper) Key() string {
        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()
 }
diff --git a/resources/page/site_integration_test.go b/resources/page/site_integration_test.go
new file mode 100644 (file)
index 0000000..60064df
--- /dev/null
@@ -0,0 +1,44 @@
+// 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")
+}