hugolib: Add Page.Equals

This commit is contained in:
Bjørn Erik Pedersen
2017-08-16 09:59:42 +02:00
parent 71ae9b4533
commit f0f49ed9b0
2 changed files with 22 additions and 0 deletions

View File

@@ -109,6 +109,18 @@ func (p *Page) IsAncestor(other interface{}) (bool, error) {
return helpers.HasStringsPrefix(pp.sections, p.sections), nil
}
// Equals returns whether the current page equals the given page.
// Note that this is more accurate than doing `{{ if eq $page $otherPage }}`
// since a Page can be embedded in another type.
func (p *Page) Equals(other interface{}) (bool, error) {
pp, err := unwrapPage(other)
if err != nil {
return false, err
}
return p == pp, nil
}
func unwrapPage(in interface{}) (*Page, error) {
if po, ok := in.(*PageOutput); ok {
in = po.Page