https://github.com/unknwon/paginater
Package paginater is a helper module for custom pagination calculation.
https://github.com/unknwon/paginater
go lsif-enabled pagination
Last synced: about 1 year ago
JSON representation
Package paginater is a helper module for custom pagination calculation.
- Host: GitHub
- URL: https://github.com/unknwon/paginater
- Owner: unknwon
- License: apache-2.0
- Created: 2015-07-26T14:30:22.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2020-03-31T09:32:01.000Z (over 6 years ago)
- Last Synced: 2025-04-02T03:56:54.038Z (about 1 year ago)
- Topics: go, lsif-enabled, pagination
- Language: Go
- Size: 15.6 KB
- Stars: 48
- Watchers: 6
- Forks: 13
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Paginater
[](https://github.com/unknwon/paginater/actions?query=workflow%3AGo)
[](https://codecov.io/gh/unknwon/paginater)
[](https://pkg.go.dev/github.com/unknwon/paginater?tab=doc)
[](https://sourcegraph.com/github.com/unknwon/paginater)
Package paginater is a helper module for custom pagination calculation.
## Installation
go get github.com/Unknwon/paginater
## Getting Started
The following code shows an example of how to use paginater:
```go
package main
import "github.com/Unknwon/paginater"
func main() {
// Arguments:
// - Total number of rows
// - Number of rows in one page
// - Current page number
// - Number of page links to be displayed
p := paginater.New(45, 10, 3, 3)
// Then use p as a template object named "Page" in "demo.html"
// ...
}
```
`demo.html`
```html
{{if not .Page.IsFirst}}[First](1){{end}}
{{if .Page.HasPrevious}}[Previous]({{.Page.Previous}}){{end}}
{{range .Page.Pages}}
{{if eq .Num -1}}
...
{{else}}
{{.Num}}{{if .IsCurrent}}(current){{end}}
{{end}}
{{end}}
{{if .Page.HasNext}}[Next]({{.Page.Next}}){{end}}
{{if not .Page.IsLast}}[Last]({{.Page.TotalPages}}){{end}}
```
Possible output:
```
[First](1) [Previous](2) ... 2 3(current) 4 ... [Next](4) [Last](5)
```
As you may guess, if the `Page` value is `-1`, you should print `...` in the HTML as common practice.
## Getting Help
- [API Documentation](https://gowalker.org/github.com/Unknwon/paginater)
- [File An Issue](https://github.com/Unknwon/paginater/issues/new)
## License
This project is under Apache v2 License. See the [LICENSE](LICENSE) file for the full license text.