hugolib: Exclude non-linkable pages from translations map - hugo - [fork] hugo port for 9front
(HTM) git clone git@git.drkhsh.at/hugo.git
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) Submodules
(DIR) README
(DIR) LICENSE
---
(DIR) commit 37ab1cf12acf3f0cd6eeca7a12edf80fb0f60c2f
(DIR) parent 59af05cabc74e381afb62e624afa5542a9ae8d68
(HTM) Author: Joe Mooring <joe.mooring@veriphor.com>
Date: Thu, 22 Dec 2022 08:19:24 -0800
hugolib: Exclude non-linkable pages from translations map
Fixes #9073
Diffstat:
A hugolib/integration_test.go | 84 +++++++++++++++++++++++++++++++
M hugolib/translations.go | 2 +-
2 files changed, 85 insertions(+), 1 deletion(-)
---
(DIR) diff --git a/hugolib/integration_test.go 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>",
+ )
+
+}
(DIR) diff --git 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()