mirror of
https://github.com/gohugoio/hugo.git
synced 2025-03-22 10:51:50 +00:00
pagination: export pager to make Golint happy
This commit is contained in:
parent
be8e6d4f1f
commit
be366bfe1e
3 changed files with 26 additions and 26 deletions
|
@ -32,7 +32,7 @@ type Node struct {
|
||||||
Date time.Time
|
Date time.Time
|
||||||
Sitemap Sitemap
|
Sitemap Sitemap
|
||||||
URLPath
|
URLPath
|
||||||
paginator *pager
|
paginator *Pager
|
||||||
paginatorInit sync.Once
|
paginatorInit sync.Once
|
||||||
scratch *Scratch
|
scratch *Scratch
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,12 +25,12 @@ import (
|
||||||
"reflect"
|
"reflect"
|
||||||
)
|
)
|
||||||
|
|
||||||
type pager struct {
|
type Pager struct {
|
||||||
number int
|
number int
|
||||||
*paginator
|
*paginator
|
||||||
}
|
}
|
||||||
|
|
||||||
type pagers []*pager
|
type pagers []*Pager
|
||||||
|
|
||||||
var paginatorEmptyPages Pages
|
var paginatorEmptyPages Pages
|
||||||
|
|
||||||
|
@ -47,23 +47,23 @@ type paginator struct {
|
||||||
type paginationURLFactory func(int) string
|
type paginationURLFactory func(int) string
|
||||||
|
|
||||||
// PageNumber returns the current page's number in the pager sequence.
|
// PageNumber returns the current page's number in the pager sequence.
|
||||||
func (p *pager) PageNumber() int {
|
func (p *Pager) PageNumber() int {
|
||||||
return p.number
|
return p.number
|
||||||
}
|
}
|
||||||
|
|
||||||
// URL returns the URL to the current page.
|
// URL returns the URL to the current page.
|
||||||
func (p *pager) URL() template.HTML {
|
func (p *Pager) URL() template.HTML {
|
||||||
return template.HTML(p.paginationURLFactory(p.PageNumber()))
|
return template.HTML(p.paginationURLFactory(p.PageNumber()))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Url is deprecated. Will be removed in 0.15.
|
// Url is deprecated. Will be removed in 0.15.
|
||||||
func (p *pager) Url() template.HTML {
|
func (p *Pager) Url() template.HTML {
|
||||||
helpers.Deprecated("Paginator", ".Url", ".URL")
|
helpers.Deprecated("Paginator", ".Url", ".URL")
|
||||||
return p.URL()
|
return p.URL()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pages returns the elements on this page.
|
// Pages returns the elements on this page.
|
||||||
func (p *pager) Pages() Pages {
|
func (p *Pager) Pages() Pages {
|
||||||
if len(p.paginatedPages) == 0 {
|
if len(p.paginatedPages) == 0 {
|
||||||
return paginatorEmptyPages
|
return paginatorEmptyPages
|
||||||
}
|
}
|
||||||
|
@ -71,17 +71,17 @@ func (p *pager) Pages() Pages {
|
||||||
}
|
}
|
||||||
|
|
||||||
// NumberOfElements gets the number of elements on this page.
|
// NumberOfElements gets the number of elements on this page.
|
||||||
func (p *pager) NumberOfElements() int {
|
func (p *Pager) NumberOfElements() int {
|
||||||
return len(p.Pages())
|
return len(p.Pages())
|
||||||
}
|
}
|
||||||
|
|
||||||
// HasPrev tests whether there are page(s) before the current.
|
// HasPrev tests whether there are page(s) before the current.
|
||||||
func (p *pager) HasPrev() bool {
|
func (p *Pager) HasPrev() bool {
|
||||||
return p.PageNumber() > 1
|
return p.PageNumber() > 1
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prev returns the pager for the previous page.
|
// Prev returns the pager for the previous page.
|
||||||
func (p *pager) Prev() *pager {
|
func (p *Pager) Prev() *Pager {
|
||||||
if !p.HasPrev() {
|
if !p.HasPrev() {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -89,12 +89,12 @@ func (p *pager) Prev() *pager {
|
||||||
}
|
}
|
||||||
|
|
||||||
// HasNext tests whether there are page(s) after the current.
|
// HasNext tests whether there are page(s) after the current.
|
||||||
func (p *pager) HasNext() bool {
|
func (p *Pager) HasNext() bool {
|
||||||
return p.PageNumber() < len(p.paginatedPages)
|
return p.PageNumber() < len(p.paginatedPages)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Next returns the pager for the next page.
|
// Next returns the pager for the next page.
|
||||||
func (p *pager) Next() *pager {
|
func (p *Pager) Next() *Pager {
|
||||||
if !p.HasNext() {
|
if !p.HasNext() {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -102,12 +102,12 @@ func (p *pager) Next() *pager {
|
||||||
}
|
}
|
||||||
|
|
||||||
// First returns the pager for the first page.
|
// First returns the pager for the first page.
|
||||||
func (p *pager) First() *pager {
|
func (p *Pager) First() *Pager {
|
||||||
return p.pagers[0]
|
return p.pagers[0]
|
||||||
}
|
}
|
||||||
|
|
||||||
// Last returns the pager for the last page.
|
// Last returns the pager for the last page.
|
||||||
func (p *pager) Last() *pager {
|
func (p *Pager) Last() *Pager {
|
||||||
return p.pagers[len(p.pagers)-1]
|
return p.pagers[len(p.pagers)-1]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -143,7 +143,7 @@ func splitPages(pages Pages, size int) []Pages {
|
||||||
|
|
||||||
// Paginator gets this Node's paginator if it's already created.
|
// Paginator gets this Node's paginator if it's already created.
|
||||||
// If it's not, one will be created with all pages in Data["Pages"].
|
// If it's not, one will be created with all pages in Data["Pages"].
|
||||||
func (n *Node) Paginator(options ...interface{}) (*pager, error) {
|
func (n *Node) Paginator(options ...interface{}) (*Pager, error) {
|
||||||
|
|
||||||
pagerSize, err := resolvePagerSize(options...)
|
pagerSize, err := resolvePagerSize(options...)
|
||||||
|
|
||||||
|
@ -182,19 +182,19 @@ func (n *Node) Paginator(options ...interface{}) (*pager, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Paginator on Page isn't supported, calling this yields an error.
|
// Paginator on Page isn't supported, calling this yields an error.
|
||||||
func (p *Page) Paginator(options ...interface{}) (*pager, error) {
|
func (p *Page) Paginator(options ...interface{}) (*Pager, error) {
|
||||||
return nil, errors.New("Paginators not supported for content pages.")
|
return nil, errors.New("Paginators not supported for content pages.")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Paginate on Page isn't supported, calling this yields an error.
|
// Paginate on Page isn't supported, calling this yields an error.
|
||||||
func (p *Page) Paginate(seq interface{}, options ...interface{}) (*pager, error) {
|
func (p *Page) Paginate(seq interface{}, options ...interface{}) (*Pager, error) {
|
||||||
return nil, errors.New("Paginators not supported for content pages.")
|
return nil, errors.New("Paginators not supported for content pages.")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Paginate gets this Node's paginator if it's already created.
|
// Paginate gets this Node's paginator if it's already created.
|
||||||
// If it's not, one will be created with the qiven sequence.
|
// If it's not, one will be created with the qiven sequence.
|
||||||
// Note that repeated calls will return the same result, even if the sequence is different.
|
// Note that repeated calls will return the same result, even if the sequence is different.
|
||||||
func (n *Node) Paginate(seq interface{}, options ...interface{}) (*pager, error) {
|
func (n *Node) Paginate(seq interface{}, options ...interface{}) (*Pager, error) {
|
||||||
|
|
||||||
pagerSize, err := resolvePagerSize(options...)
|
pagerSize, err := resolvePagerSize(options...)
|
||||||
|
|
||||||
|
@ -230,10 +230,10 @@ func (n *Node) Paginate(seq interface{}, options ...interface{}) (*pager, error)
|
||||||
|
|
||||||
if n.paginator.source == "paginator" {
|
if n.paginator.source == "paginator" {
|
||||||
return nil, errors.New("a Paginator was previously built for this Node without filters; look for earlier .Paginator usage")
|
return nil, errors.New("a Paginator was previously built for this Node without filters; look for earlier .Paginator usage")
|
||||||
} else {
|
}
|
||||||
if !reflect.DeepEqual(options, n.paginator.options) || !probablyEqualPageLists(n.paginator.source, seq) {
|
|
||||||
return nil, errors.New("invoked multiple times with different arguments")
|
if !reflect.DeepEqual(options, n.paginator.options) || !probablyEqualPageLists(n.paginator.source, seq) {
|
||||||
}
|
return nil, errors.New("invoked multiple times with different arguments")
|
||||||
}
|
}
|
||||||
|
|
||||||
return n.paginator, nil
|
return n.paginator, nil
|
||||||
|
@ -338,11 +338,11 @@ func newPaginator(pages Pages, size int, urlFactory paginationURLFactory) (*pagi
|
||||||
if len(split) > 0 {
|
if len(split) > 0 {
|
||||||
ps = make(pagers, len(split))
|
ps = make(pagers, len(split))
|
||||||
for i := range p.paginatedPages {
|
for i := range p.paginatedPages {
|
||||||
ps[i] = &pager{number: (i + 1), paginator: p}
|
ps[i] = &Pager{number: (i + 1), paginator: p}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ps = make(pagers, 1)
|
ps = make(pagers, 1)
|
||||||
ps[0] = &pager{number: 1, paginator: p}
|
ps[0] = &Pager{number: 1, paginator: p}
|
||||||
}
|
}
|
||||||
|
|
||||||
p.pagers = ps
|
p.pagers = ps
|
||||||
|
|
|
@ -129,7 +129,7 @@ func doTestPaginator(t *testing.T, useViper bool) {
|
||||||
n2 := s.newHomeNode()
|
n2 := s.newHomeNode()
|
||||||
n1.Data["Pages"] = pages
|
n1.Data["Pages"] = pages
|
||||||
|
|
||||||
var paginator1 *pager
|
var paginator1 *Pager
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
if useViper {
|
if useViper {
|
||||||
|
@ -184,7 +184,7 @@ func doTestPaginate(t *testing.T, useViper bool) {
|
||||||
n1 := s.newHomeNode()
|
n1 := s.newHomeNode()
|
||||||
n2 := s.newHomeNode()
|
n2 := s.newHomeNode()
|
||||||
|
|
||||||
var paginator1, paginator2 *pager
|
var paginator1, paginator2 *Pager
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
if useViper {
|
if useViper {
|
||||||
|
|
Loading…
Reference in a new issue