URI: 
       Render aliases even if render=link - hugo - [fork] hugo port for 9front
  HTML git clone git@git.drkhsh.at/hugo.git
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
   DIR README
   DIR LICENSE
       ---
   DIR commit ead5799f7ea837fb2ca1879a6d37ba364e53827f
   DIR parent d57be113243be4b76310d4476fbb7525d1452658
  HTML Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
       Date:   Wed, 14 Oct 2020 11:23:24 +0200
       
       Render aliases even if render=link
       
       Fixes #7832
       
       Diffstat:
         M hugolib/content_map.go              |      14 ++++++++++++++
         M hugolib/disableKinds_test.go        |       7 ++++++-
         M hugolib/page__paths.go              |       2 +-
         M hugolib/site_render.go              |      14 +++++++++++---
       
       4 files changed, 32 insertions(+), 5 deletions(-)
       ---
   DIR diff --git a/hugolib/content_map.go b/hugolib/content_map.go
       @@ -830,6 +830,13 @@ var (
                        }
                        return n.p.m.noRender()
                }
       +
       +        contentTreeNoLinkFilter = func(s string, n *contentNode) bool {
       +                if n.p == nil {
       +                        return true
       +                }
       +                return n.p.m.noLink()
       +        }
        )
        
        func (c *contentTree) WalkQuery(query pageMapQuery, walkFn contentTreeNodeCallback) {
       @@ -865,6 +872,13 @@ func (c contentTrees) WalkRenderable(fn contentTreeNodeCallback) {
                }
        }
        
       +func (c contentTrees) WalkLinkable(fn contentTreeNodeCallback) {
       +        query := pageMapQuery{Filter: contentTreeNoLinkFilter}
       +        for _, tree := range c {
       +                tree.WalkQuery(query, fn)
       +        }
       +}
       +
        func (c contentTrees) Walk(fn contentTreeNodeCallback) {
                for _, tree := range c {
                        tree.Walk(func(s string, v interface{}) bool {
   DIR diff --git a/hugolib/disableKinds_test.go b/hugolib/disableKinds_test.go
       @@ -58,6 +58,7 @@ _build:
                                "sect/no-render-link.md", `
        ---
        title: No Render Link
       +aliases: ["/link-alias"]
        _build:
          render: link
        ---
       @@ -319,10 +320,14 @@ title: Headless Local Lists Sub
                        p := getPage(b, ref)
                        b.Assert(p, qt.Not(qt.IsNil))
                        b.Assert(p.RelPermalink(), qt.Equals, "/blog/sect/no-render-link/")
       -                b.Assert(p.OutputFormats(), qt.HasLen, 0)
       +                b.Assert(p.OutputFormats(), qt.HasLen, 1)
                        b.Assert(getPageInSitePages(b, ref), qt.Not(qt.IsNil))
                        sect := getPage(b, "/sect")
                        b.Assert(getPageInPagePages(sect, ref), qt.Not(qt.IsNil))
       +
       +                // https://github.com/gohugoio/hugo/issues/7832
       +                // It should still render any aliases.
       +                b.AssertFileContent("public/link-alias/index.html", "refresh")
                })
        
                c.Run("Build config, no publish resources", func(c *qt.C) {
   DIR diff --git a/hugolib/page__paths.go b/hugolib/page__paths.go
       @@ -76,7 +76,7 @@ func newPagePaths(
                }
        
                var out page.OutputFormats
       -        if !pm.noRender() {
       +        if !pm.noLink() {
                        out = pageOutputFormats
                }
        
   DIR diff --git a/hugolib/site_render.go b/hugolib/site_render.go
       @@ -323,20 +323,28 @@ func (s *Site) renderRobotsTXT() error {
        // renderAliases renders shell pages that simply have a redirect in the header.
        func (s *Site) renderAliases() error {
                var err error
       -        s.pageMap.pageTrees.WalkRenderable(func(ss string, n *contentNode) bool {
       +        s.pageMap.pageTrees.WalkLinkable(func(ss string, n *contentNode) bool {
                        p := n.p
                        if len(p.Aliases()) == 0 {
                                return false
                        }
        
       +                pathSeen := make(map[string]bool)
       +
                        for _, of := range p.OutputFormats() {
                                if !of.Format.IsHTML {
       -                                return false
       +                                continue
                                }
        
       -                        plink := of.Permalink()
                                f := of.Format
        
       +                        if pathSeen[f.Path] {
       +                                continue
       +                        }
       +                        pathSeen[f.Path] = true
       +
       +                        plink := of.Permalink()
       +
                                for _, a := range p.Aliases() {
                                        isRelative := !strings.HasPrefix(a, "/")