diff options
author | Joe Mooring <[email protected]> | 2022-12-22 08:19:24 -0800 |
---|---|---|
committer | Bjørn Erik Pedersen <[email protected]> | 2022-12-22 18:53:12 +0100 |
commit | 37ab1cf12acf3f0cd6eeca7a12edf80fb0f60c2f (patch) | |
tree | 0c66f579cd7bc185a9000a6d0958eec89c0def21 | |
parent | 59af05cabc74e381afb62e624afa5542a9ae8d68 (diff) | |
download | hugo-37ab1cf12acf3f0cd6eeca7a12edf80fb0f60c2f.tar.gz hugo-37ab1cf12acf3f0cd6eeca7a12edf80fb0f60c2f.zip |
hugolib: Exclude non-linkable pages from translations map
Fixes #9073
-rw-r--r-- | hugolib/integration_test.go | 84 | ||||
-rw-r--r-- | hugolib/translations.go | 2 |
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() |