summaryrefslogtreecommitdiffstats
path: root/hugolib
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2024-02-01 09:37:05 +0100
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2024-02-01 19:42:55 +0100
commit4174a7866b75c6ae10827cc77dbae0676af8e5eb (patch)
tree90554344f1749dcdbcfe4587815643c35723b1c2 /hugolib
parent5dd06b4136aead1d4c8ef835f0670c32ae321152 (diff)
Fix disabled languages regression
Fixes #11959
Diffstat (limited to 'hugolib')
-rw-r--r--hugolib/content_map.go6
-rw-r--r--hugolib/disableKinds_test.go47
-rw-r--r--hugolib/page__new.go5
-rw-r--r--hugolib/pagebundler_test.go23
4 files changed, 71 insertions, 10 deletions
diff --git a/hugolib/content_map.go b/hugolib/content_map.go
index 96013c4ed..85300e3db 100644
--- a/hugolib/content_map.go
+++ b/hugolib/content_map.go
@@ -166,11 +166,6 @@ func (m *pageMap) AddFi(fi hugofs.FileMetaInfo) error {
return nil
}
- meta := fi.Meta()
- if m.s.conf.IsLangDisabled(meta.Lang) {
- return nil
- }
-
insertResource := func(fim hugofs.FileMetaInfo) error {
pi := fi.Meta().PathInfo
key := pi.Base()
@@ -209,6 +204,7 @@ func (m *pageMap) AddFi(fi hugofs.FileMetaInfo) error {
return nil
}
+ meta := fi.Meta()
pi := meta.PathInfo
switch pi.BundleType() {
diff --git a/hugolib/disableKinds_test.go b/hugolib/disableKinds_test.go
index 006520580..8262f562a 100644
--- a/hugolib/disableKinds_test.go
+++ b/hugolib/disableKinds_test.go
@@ -416,3 +416,50 @@ Section: MySection|RelPermalink: |Outputs: 0
b.Assert(b.CheckExists("public/sect/no-render/index.html"), qt.Equals, false)
b.Assert(b.CheckExists("public/sect-no-render/index.html"), qt.Equals, false)
}
+
+func TestDisableOneOfThreeLanguages(t *testing.T) {
+ files := `
+-- hugo.toml --
+baseURL = "https://example.com"
+defaultContentLanguage = "en"
+defaultContentLanguageInSubdir = true
+[languages]
+[languages.en]
+weight = 1
+title = "English"
+[languages.nn]
+weight = 2
+title = "Nynorsk"
+disabled = true
+[languages.nb]
+weight = 3
+title = "Bokmål"
+-- content/p1.nn.md --
+---
+title: "Page 1 nn"
+---
+-- content/p1.nb.md --
+---
+title: "Page 1 nb"
+---
+-- content/p1.en.md --
+---
+title: "Page 1 en"
+---
+-- content/p2.nn.md --
+---
+title: "Page 2 nn"
+---
+-- layouts/_default/single.html --
+{{ .Title }}
+`
+ b := Test(t, files)
+
+ b.Assert(len(b.H.Sites), qt.Equals, 2)
+ b.AssertFileContent("public/en/p1/index.html", "Page 1 en")
+ b.AssertFileContent("public/nb/p1/index.html", "Page 1 nb")
+
+ b.AssertFileExists("public/en/p2/index.html", false)
+ b.AssertFileExists("public/nn/p1/index.html", false)
+ b.AssertFileExists("public/nn/p2/index.html", false)
+}
diff --git a/hugolib/page__new.go b/hugolib/page__new.go
index 3bef55f43..d846fe03c 100644
--- a/hugolib/page__new.go
+++ b/hugolib/page__new.go
@@ -60,6 +60,11 @@ func (h *HugoSites) newPage(m *pageMeta) (*pageState, *paths.Path, error) {
return nil, nil, m.wrapError(err, h.BaseFs.SourceFs)
}
pcfg := m.pageConfig
+ if pcfg.Lang != "" {
+ if h.Conf.IsLangDisabled(pcfg.Lang) {
+ return nil, nil, nil
+ }
+ }
if pcfg.Path != "" {
s := m.pageConfig.Path
diff --git a/hugolib/pagebundler_test.go b/hugolib/pagebundler_test.go
index 54ea04c7a..c6f9155ea 100644
--- a/hugolib/pagebundler_test.go
+++ b/hugolib/pagebundler_test.go
@@ -188,30 +188,43 @@ baseURL = "https://example.com"
disableKinds = ["taxonomy", "term"]
defaultContentLanguage = "en"
defaultContentLanguageInSubdir = true
-disableLanguages = ["nn"]
[languages]
[languages.en]
weight = 1
[languages.nn]
weight = 2
--- content/p1.md --
+disabled = true
+-- content/mysect/_index.md --
+---
+title: "My Sect En"
+---
+-- content/mysect/p1/index.md --
---
title: "P1"
---
P1
--- content/p1.nn.md --
+-- content/mysect/_index.nn.md --
+---
+title: "My Sect Nn"
+---
+-- content/mysect/p1/index.nn.md --
---
title: "P1nn"
---
P1nn
+-- layouts/index.html --
+Len RegularPages: {{ len .Site.RegularPages }}|RegularPages: {{ range site.RegularPages }}{{ .RelPermalink }}: {{ .Title }}|{{ end }}|
+Len Pages: {{ len .Site.Pages }}|
+Len Sites: {{ len .Site.Sites }}|
-- layouts/_default/single.html --
{{ .Title }}|{{ .Content }}|{{ .Lang }}|
`
b := Test(t, files)
- b.AssertFileContent("public/en/p1/index.html", "P1|<p>P1</p>\n|en|")
- b.AssertFileExists("public/public/nn/p1/index.html", false)
+ b.AssertFileContent("public/en/index.html", "Len RegularPages: 1|")
+ b.AssertFileContent("public/en/mysect/p1/index.html", "P1|<p>P1</p>\n|en|")
+ b.AssertFileExists("public/public/nn/mysect/p1/index.html", false)
b.Assert(len(b.H.Sites), qt.Equals, 1)
}