aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJoe Mooring <[email protected]>2022-12-22 08:19:24 -0800
committerBjørn Erik Pedersen <[email protected]>2022-12-22 18:53:12 +0100
commit37ab1cf12acf3f0cd6eeca7a12edf80fb0f60c2f (patch)
tree0c66f579cd7bc185a9000a6d0958eec89c0def21
parent59af05cabc74e381afb62e624afa5542a9ae8d68 (diff)
downloadhugo-37ab1cf12acf3f0cd6eeca7a12edf80fb0f60c2f.tar.gz
hugo-37ab1cf12acf3f0cd6eeca7a12edf80fb0f60c2f.zip
hugolib: Exclude non-linkable pages from translations map
Fixes #9073
-rw-r--r--hugolib/integration_test.go84
-rw-r--r--hugolib/translations.go2
2 files changed, 85 insertions, 1 deletions
diff --git a/hugolib/integration_test.go b/hugolib/integration_test.go
new file mode 100644
index 000000000..de8a6179b
--- /dev/null
+++ b/hugolib/integration_test.go
@@ -0,0 +1,84 @@
+// Copyright 2022 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 hugolib_test
+
+import (
+ "testing"
+
+ "github.com/gohugoio/hugo/hugolib"
+)
+
+// Issue 9073
+func TestPageTranslationsMap(t *testing.T) {
+ t.Parallel()
+
+ files := `
+-- config.toml --
+baseURL = 'https://example.org/'
+title = 'Issue-9073'
+defaultContentLanguageInSubdir = true
+
+[taxonomies]
+tag = 'tags'
+
+[languages.en]
+contentDir = 'content/en'
+weight = 1
+disableKinds = ['RSS','sitemap']
+
+[languages.de]
+contentDir = 'content/de'
+weight = 2
+disableKinds = ['home', 'page', 'section', 'taxonomy', 'term','RSS','sitemap']
+-- content/de/posts/p1.md --
+---
+title: P1
+tags: ['T1']
+---
+-- content/en/posts/p1.md --
+---
+title: P1
+tags: ['T1']
+---
+-- layouts/_default/single.html --
+<ul>{{ range .AllTranslations }}<li>{{ .Title }}-{{ .Lang }}</li>{{ end }}</ul>
+-- layouts/_default/list.html --
+<ul>{{ range .AllTranslations }}<li>{{ .Title }}-{{ .Lang }}</li>{{ end }}</ul>
+ `
+
+ b := hugolib.NewIntegrationTestBuilder(
+ hugolib.IntegrationTestConfig{
+ T: t,
+ TxtarString: files,
+ },
+ )
+ b.Build()
+
+ b.AssertFileContent("public/en/posts/index.html",
+ "<ul><li>Posts-en</li></ul>",
+ )
+ b.AssertFileContent("public/en/posts/p1/index.html",
+ "<ul><li>P1-en</li></ul>",
+ )
+ b.AssertFileContent("public/en/tags/index.html",
+ "<ul><li>Tags-en</li></ul>",
+ )
+ b.AssertFileContent("public/en/tags/t1/index.html",
+ "<ul><li>T1-en</li></ul>",
+ )
+ b.AssertFileContent("public/en/index.html",
+ "<ul><li>Issue-9073-en</li></ul>",
+ )
+
+}
diff --git a/hugolib/translations.go b/hugolib/translations.go
index 76beafba9..5fcbc9218 100644
--- a/hugolib/translations.go
+++ b/hugolib/translations.go
@@ -21,7 +21,7 @@ func pagesToTranslationsMap(sites []*Site) map[string]page.Pages {
out := make(map[string]page.Pages)
for _, s := range sites {
- s.pageMap.pageTrees.Walk(func(ss string, n *contentNode) bool {
+ s.pageMap.pageTrees.WalkLinkable(func(ss string, n *contentNode) bool {
p := n.p
// TranslationKey is implemented for all page types.
base := p.TranslationKey()