From 37ab1cf12acf3f0cd6eeca7a12edf80fb0f60c2f Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Thu, 22 Dec 2022 08:19:24 -0800 Subject: hugolib: Exclude non-linkable pages from translations map Fixes #9073 --- hugolib/integration_test.go | 84 +++++++++++++++++++++++++++++++++++++++++++++ hugolib/translations.go | 2 +- 2 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 hugolib/integration_test.go 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 -- + +-- layouts/_default/list.html -- + + ` + + b := hugolib.NewIntegrationTestBuilder( + hugolib.IntegrationTestConfig{ + T: t, + TxtarString: files, + }, + ) + b.Build() + + b.AssertFileContent("public/en/posts/index.html", + "", + ) + b.AssertFileContent("public/en/posts/p1/index.html", + "", + ) + b.AssertFileContent("public/en/tags/index.html", + "", + ) + b.AssertFileContent("public/en/tags/t1/index.html", + "", + ) + b.AssertFileContent("public/en/index.html", + "", + ) + +} 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() -- cgit v1.2.3