]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
hugolib: Exclude non-linkable pages from translations map
authorJoe Mooring <joe.mooring@veriphor.com>
Thu, 22 Dec 2022 16:19:24 +0000 (08:19 -0800)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Thu, 22 Dec 2022 17:53:12 +0000 (18:53 +0100)
Fixes #9073

hugolib/integration_test.go [new file with mode: 0644]
hugolib/translations.go

diff --git a/hugolib/integration_test.go b/hugolib/integration_test.go
new file mode 100644 (file)
index 0000000..de8a617
--- /dev/null
@@ -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>",
+       )
+
+}
index 76beafba9f91b1ae76b94bd4a9997815e18b1cf5..5fcbc9218406b5f9cb7bae212aaaae6f06de56e0 100644 (file)
@@ -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()