mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-14 06:39:40 +01:00
30ce3731a1
* denisenkom/go-mssqldb untagged -> v0.9.0 * github.com/editorconfig/editorconfig-core-go v2.3.7 -> v2.3.8 * github.com/go-testfixtures/testfixtures v3.4.0 -> v3.4.1 * github.com/mholt/archiver v3.3.2 -> v3.5.0 * github.com/olivere/elastic v7.0.20 -> v7.0.21 * github.com/urfave/cli v1.22.4 -> v1.22.5 * github.com/xanzy/go-gitlab v0.38.1 -> v0.39.0 * github.com/yuin/goldmark-meta untagged -> v1.0.0 * github.com/ethantkoenig/rupture 0a76f03a811a -> c3b3b810dc77 * github.com/jaytaylor/html2text 8fb95d837f7d -> 3577fbdbcff7 * github.com/kballard/go-shellquote cd60e84ee657 -> 95032a82bc51 * github.com/msteinert/pam 02ccfbfaf0cc -> 913b8f8cdf8b * github.com/unknwon/paginater 7748a72e0141 -> 042474bd0eae * CI.restart() Co-authored-by: techknowlogick <techknowlogick@gitea.io>
69 lines
No EOL
2 KiB
Markdown
Vendored
69 lines
No EOL
2 KiB
Markdown
Vendored
# Paginater
|
|
|
|
[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/unknwon/paginater/Go?logo=github&style=for-the-badge)](https://github.com/unknwon/paginater/actions?query=workflow%3AGo)
|
|
[![codecov](https://img.shields.io/codecov/c/github/unknwon/paginater/master?logo=codecov&style=for-the-badge)](https://codecov.io/gh/unknwon/paginater)
|
|
[![GoDoc](https://img.shields.io/badge/GoDoc-Reference-blue?style=for-the-badge&logo=go)](https://pkg.go.dev/github.com/unknwon/paginater?tab=doc)
|
|
[![Sourcegraph](https://img.shields.io/badge/view%20on-Sourcegraph-brightgreen.svg?style=for-the-badge&logo=sourcegraph)](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. |