package hugolib
import (
+ "fmt"
+
"github.com/gohugoio/hugo/identity"
"github.com/gohugoio/hugo/output"
"github.com/gohugoio/hugo/resources/page"
targetPathsProvider = ft
linksProvider = ft
- var paginatorProvider page.PaginatorProvider = page.NopPage
+ var paginatorProvider page.PaginatorProvider
var pag *pagePaginator
if render && ps.IsNode() {
pag = newPagePaginator(ps)
paginatorProvider = pag
+ } else {
+ paginatorProvider = page.PaginatorNotSupportedFunc(func() error {
+ return fmt.Errorf("pagination not supported for pages of kind %q", ps.Kind())
+ })
}
var dependencyManager identity.Manager = identity.NopManager
b.AssertFileContent("public/index.html", "Len: 0", "Len Pag: 0")
}
+
+func TestPaginatorNodePagesOnly(t *testing.T) {
+ files := `
+-- hugo.toml --
+paginate = 1
+-- content/p1.md --
+-- layouts/_default/single.html --
+Paginator: {{ .Paginator }}
+`
+ b, err := TestE(t, files)
+ b.Assert(err, qt.IsNotNil)
+ b.Assert(err.Error(), qt.Contains, `error calling Paginator: pagination not supported for pages of kind "page"`)
+}
Paginate(pages any, options ...any) (*Pager, error)
}
+var _ PaginatorProvider = (*PaginatorNotSupportedFunc)(nil)
+
+type PaginatorNotSupportedFunc func() error
+
+func (f PaginatorNotSupportedFunc) Paginate(pages any, options ...any) (*Pager, error) {
+ return nil, f()
+}
+
+func (f PaginatorNotSupportedFunc) Paginator(options ...any) (*Pager, error) {
+ return nil, f()
+}
+
// Pager represents one of the elements in a paginator.
// The number, starting on 1, represents its place.
type Pager struct {