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()