mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-16 20:53:59 +02:00
Add pagination support for home page, sections and taxonomies
Two new configuration properties, `Paginate` (default `0`) and `PaginatePath` (default `page`) are added. Setting `paginate` to a positive value will split the list pages for the home page, sections and taxonomies into chunks of size of the `paginate` property. A `.Paginator` is provided to help building a pager menu. There are two ways to configure a `.Paginator`: 1. The simplest way is just to call `.Paginator.Pages` from a template. It will contain the pages for "that page" (`.Data.Pages` will (like today) contain all the pages). 2. Select a sub-set of the pages with the available template functions and pass the slice to `.Paginate` : `{{ range (.Paginate (where .Data.Pages "Type" "post")).Pages }}` **NOTE:** For a given Node, it's one of the options above. It's perfectly legitimate to iterate over the same pager more than once, but it's static and cannot change. The `.Paginator` contains enough information to build a full-blown paginator interface. The pages are built on the form (note: BLANK means no value, i.e. home page): ``` [SECTION/TAXONOMY/BLANK]/index.html [SECTION/TAXONOMY/BLANK]/page/1/index.html => redirect to [SECTION/TAXONOMY/BLANK]/index.html [SECTION/TAXONOMY/BLANK]/page/2/index.html .... ``` Fixes #96
This commit is contained in:
@@ -16,6 +16,7 @@ package helpers
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/PuerkitoBio/purell"
|
||||
"github.com/spf13/viper"
|
||||
"net/url"
|
||||
"path"
|
||||
"strings"
|
||||
@@ -97,6 +98,10 @@ func AddContextRoot(baseUrl, relativePath string) string {
|
||||
return newPath
|
||||
}
|
||||
|
||||
func UrlizeAndPrep(in string) string {
|
||||
return UrlPrep(viper.GetBool("UglyUrls"), Urlize(in))
|
||||
}
|
||||
|
||||
func UrlPrep(ugly bool, in string) string {
|
||||
if ugly {
|
||||
x := Uglify(SanitizeUrl(in))
|
||||
|
Reference in New Issue
Block a user