Add Param(key) to Node and Page

This  is a convenience method to do lookups in Page's (Page only)  and Site's Params map (Page and Node), in that order.

Fixes #1462
This commit is contained in:
Bjørn Erik Pedersen
2015-10-12 05:51:04 +02:00
parent 3586d77bd5
commit 078fad49e2
2 changed files with 27 additions and 0 deletions

View File

@@ -132,6 +132,21 @@ func (p *Page) IsPage() bool {
return true
}
// Param is a convenience method to do lookups in Page's and Site's Params map,
// in that order.
//
// This method is also implemented on Node.
func (p *Page) Param(key interface{}) (interface{}, error) {
keyStr, err := cast.ToStringE(key)
if err != nil {
return nil, err
}
if val, ok := p.Params[keyStr]; ok {
return val, nil
}
return p.Site.Params[keyStr], nil
}
func (p *Page) Author() Author {
authors := p.Authors()