Fix _build.list.local logic
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Tue, 24 Mar 2020 10:47:05 +0000 (11:47 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Tue, 24 Mar 2020 11:47:42 +0000 (12:47 +0100)
Fixes #7089

hugolib/content_map.go
hugolib/content_map_page.go
hugolib/disableKinds_test.go
hugolib/page__meta.go
resources/page/pagemeta/pagemeta.go

index 7b28965acf239cbab853e6908b9a5f4da892238c..3c57fffcfb0a4543885514631e63fc24cdfb5991 100644 (file)
@@ -796,11 +796,11 @@ func newContentTreeFilter(fn func(n *contentNode) bool) contentTreeNodeCallback
 }
 
 var (
-       contentTreeNoListFilter = func(s string, n *contentNode) bool {
+       contentTreeNoListAlwaysFilter = func(s string, n *contentNode) bool {
                if n.p == nil {
                        return true
                }
-               return n.p.m.noList()
+               return n.p.m.noListAlways()
        }
 
        contentTreeNoRenderFilter = func(s string, n *contentNode) bool {
@@ -814,7 +814,7 @@ var (
 func (c *contentTree) WalkQuery(query pageMapQuery, walkFn contentTreeNodeCallback) {
        filter := query.Filter
        if filter == nil {
-               filter = contentTreeNoListFilter
+               filter = contentTreeNoListAlwaysFilter
        }
        if query.Prefix != "" {
                c.WalkPrefix(query.Prefix, func(s string, v interface{}) bool {
index 5607749c9b6dae2a52c454219ee44f04e60b7a3c..6be56f3f5356cf1c11628f7292811892f3d32986 100644 (file)
@@ -304,7 +304,7 @@ func (m *pageMap) createListAllPages() page.Pages {
                if n.p == nil {
                        panic(fmt.Sprintf("BUG: page not set for %q", s))
                }
-               if contentTreeNoListFilter(s, n) {
+               if contentTreeNoListAlwaysFilter(s, n) {
                        return false
                }
                pages = append(pages, n.p)
@@ -613,7 +613,7 @@ type pageMapQuery struct {
 
 func (m *pageMap) collectPages(query pageMapQuery, fn func(c *contentNode)) error {
        if query.Filter == nil {
-               query.Filter = contentTreeNoListFilter
+               query.Filter = contentTreeNoListAlwaysFilter
        }
 
        m.pages.WalkQuery(query, func(s string, n *contentNode) bool {
index 9ac30442ee6d8e2dce444c37c5eef62148d0b19f..87c2b5d3d93a0ea11dc60a69e3f77a1210d57925 100644 (file)
@@ -269,10 +269,9 @@ title: Headless Local Lists Sub
                sect := getPage(b, ref)
                b.Assert(sect, qt.Not(qt.IsNil))
                b.Assert(getPageInSitePages(b, ref), qt.IsNil)
-               b.Assert(getPageInSitePages(b, ref+"/headless-local-page"), qt.IsNil)
-               for i, p := range sect.RegularPages() {
-                       fmt.Println("REG", i, p.(*pageState).sourceRef())
-               }
+
+               b.Assert(getPageInSitePages(b, "/headless-local/_index.md"), qt.IsNil)
+               b.Assert(getPageInSitePages(b, "/headless-local/headless-local-page.md"), qt.IsNil)
 
                localPageRef := ref + "/headless-local-page.md"
 
index 87e955103092fff6342fffb927b6fc4c9d0b5a8f..36c314d9dd7504e78570fee7067b06e26034668b 100644 (file)
@@ -612,8 +612,8 @@ func (pm *pageMeta) setMetadata(parentBucket *pagesMapBucket, p *pageState, fron
        return nil
 }
 
-func (p *pageMeta) noList() bool {
-       return !p.buildConfig.ShouldList()
+func (p *pageMeta) noListAlways() bool {
+       return p.buildConfig.List != pagemeta.Always
 }
 
 func (p *pageMeta) getListFilter(local bool) contentTreeNodeCallback {
index 632f46df76f26b4269036a508e42705f83798703..4e09b5ed743e2caf6e8dd20814cd335433b8e15e 100644 (file)
@@ -71,10 +71,6 @@ func (b BuildConfig) IsZero() bool {
        return !b.set
 }
 
-func (b *BuildConfig) ShouldList() bool {
-       return b.List == Always || b.List == ListLocally
-}
-
 func DecodeBuildConfig(m interface{}) (BuildConfig, error) {
        b := defaultBuildConfig
        if m == nil {