summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakayama Fumihiko <tekezo@pqrs.org>2020-04-24 01:23:32 +0900
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2020-04-23 20:23:42 +0200
commit8d5766d417d6564a1aa1cbe8f9a29ab9bba22371 (patch)
treec8b5bdc2f177dfeb1cfa738b622edc333081adea
parent5c41f41ad4b14e48aea64687a7600f5ad231e879 (diff)
Fix IsAncestor and IsDescendant when the same page is passed
-rw-r--r--hugolib/content_map_test.go8
-rw-r--r--hugolib/page__tree.go8
2 files changed, 12 insertions, 4 deletions
diff --git a/hugolib/content_map_test.go b/hugolib/content_map_test.go
index b24b9d09a..4ddbf8c7f 100644
--- a/hugolib/content_map_test.go
+++ b/hugolib/content_map_test.go
@@ -395,8 +395,8 @@ Blog Section: {{ template "print-page" $blog }}
Blog Sub Section: {{ template "print-page" $blogSub }}
Page: {{ template "print-page" $page }}
Bundle: {{ template "print-page" $bundle }}
-IsDescendant: true: {{ $page.IsDescendant $blog }} true: {{ $blogSub.IsDescendant $blog }} true: {{ $bundle.IsDescendant $blog }} true: {{ $page4.IsDescendant $blog }} true: {{ $blog.IsDescendant $home }} false: {{ $home.IsDescendant $blog }}
-IsAncestor: true: {{ $blog.IsAncestor $page }} true: {{ $home.IsAncestor $blog }} true: {{ $blog.IsAncestor $blogSub }} true: {{ $blog.IsAncestor $bundle }} true: {{ $blog.IsAncestor $page4 }} true: {{ $home.IsAncestor $page }} false: {{ $page.IsAncestor $blog }} false: {{ $blog.IsAncestor $home }} false: {{ $blogSub.IsAncestor $blog }}
+IsDescendant: true: {{ $page.IsDescendant $blog }} true: {{ $blogSub.IsDescendant $blog }} true: {{ $bundle.IsDescendant $blog }} true: {{ $page4.IsDescendant $blog }} true: {{ $blog.IsDescendant $home }} true: {{ $blog.IsDescendant $blog }} false: {{ $home.IsDescendant $blog }}
+IsAncestor: true: {{ $blog.IsAncestor $page }} true: {{ $home.IsAncestor $blog }} true: {{ $blog.IsAncestor $blogSub }} true: {{ $blog.IsAncestor $bundle }} true: {{ $blog.IsAncestor $page4 }} true: {{ $home.IsAncestor $page }} true: {{ $blog.IsAncestor $blog }} false: {{ $page.IsAncestor $blog }} false: {{ $blog.IsAncestor $home }} false: {{ $blogSub.IsAncestor $blog }}
IsDescendant overlap1: false: {{ $overlap1.IsDescendant $overlap2 }}
IsDescendant overlap2: false: {{ $overlap2.IsDescendant $overlap1 }}
IsAncestor overlap1: false: {{ $overlap1.IsAncestor $overlap2 }}
@@ -438,8 +438,8 @@ Draft5: {{ if (.Site.GetPage "blog/draftsection/sub/page") }}FOUND{{ end }}|
Blog Sub Section: Page 3|/blog/subsection/|2019-06-03|Current Section: blog/subsection|Resources: json: /blog/subsection/subdata.json|
Page: Page 1|/blog/page1/|2019-06-01|Current Section: blog|Resources:
Bundle: Page 12|/blog/bundle/|0001-01-01|Current Section: blog|Resources: json: /blog/bundle/data.json|page: |
- IsDescendant: true: true true: true true: true true: true true: true false: false
- IsAncestor: true: true true: true true: true true: true true: true true: true false: false false: false false: false
+ IsDescendant: true: true true: true true: true true: true true: true true: true false: false
+ IsAncestor: true: true true: true true: true true: true true: true true: true true: true false: false false: false false: false
IsDescendant overlap1: false: false
IsDescendant overlap2: false: false
IsAncestor overlap1: false: false
diff --git a/hugolib/page__tree.go b/hugolib/page__tree.go
index bb28f1181..a6f66ffbc 100644
--- a/hugolib/page__tree.go
+++ b/hugolib/page__tree.go
@@ -54,6 +54,10 @@ func (pt pageTree) IsAncestor(other interface{}) (bool, error) {
return false, nil
}
+ if ref1.key == ref2.key {
+ return true, nil
+ }
+
if strings.HasPrefix(ref2.key, ref1.key+"/") {
return true, nil
}
@@ -101,6 +105,10 @@ func (pt pageTree) IsDescendant(other interface{}) (bool, error) {
return false, nil
}
+ if ref1.key == ref2.key {
+ return true, nil
+ }
+
if strings.HasPrefix(ref1.key, ref2.key+"/") {
return true, nil
}