<!-- A simple and generic Paginator row, with page buttons and Previous/Next Usage: [[SimplePager .Pager]] Give it your Pagination object (with .Previous, .Next, .Iter() and so on). It links to the current .Request.URL.Path and with all query parameters + the page added. Should be suitable for most pagers that don't need any specialized logic. See also: template_funcs.go for the SimplePager wrapper function. --> {{define "SimplePager"}} {{if .Pager.Pages}} <nav class="pagination" role="navigation" aria-label="pagination"> <a class="pagination-previous{{if not .Pager.HasPrevious}} is-disabled{{end}}" title="Previous" href="{{.Request.URL.Path}}?{{QueryPlus "page" .Pager.Previous}}" style="font-size: smaller">Previous</a> <a class="pagination-next{{if not .Pager.HasNext}} is-disabled{{end}}" title="Next" href="{{.Request.URL.Path}}?{{QueryPlus "page" .Pager.Next}}" style="font-size: smaller">Next page</a> <ul class="pagination-list"> {{$Root := .}} {{$DropdownID := .Pager.UniqueSerialID}} {{range .Pager.Iter}} <li> <!-- Overflow menu in the middle? --> {{if .IsOverflow}} <div class="dropdown px-1"> <div class="dropdown-trigger"> <button type="button" class="button{{if .IsCurrent}} is-link{{end}}" aria-haspopup="true" aria-controls="{{$DropdownID}}" style="font-size: smaller"> {{.Page}} <i class="fas fa-angle-down ml-1" aria-hidden="true"></i> </button> </div> <div class="dropdown-menu" id="{{$DropdownID}}" role="menu"> <div class="dropdown-content" style="max-height: 250px; overflow: auto"> {{range .IterOverflow}} <a class="dropdown-item{{if .IsCurrent}} is-active{{end}}" aria-label="Page {{.Page}}" href="{{$Root.Request.URL.Path}}?{{QueryPlus "page" .Page}}">{{.Page}}</a> {{end}} </div> </div> </div> {{else}} <a class="pagination-link{{if .IsCurrent}} is-current{{end}}" style="font-size: smaller" aria-label="Page {{.Page}}" href="{{$Root.Request.URL.Path}}?{{QueryPlus "page" .Page}}"> {{.Page}} </a> {{end}} </li> {{end}} </ul> </nav> {{end}} {{end}}