pagination.html (1854B)
1 {{ $paginator := .Paginator }} 2 {{ $adjacent_links := 2 }} 3 {{ $max_links := (add (mul $adjacent_links 2) 1) }} 4 {{ $lower_limit := (add $adjacent_links 1) }} 5 {{ $upper_limit := (sub $paginator.TotalPages $adjacent_links) }} 6 {{ if gt $paginator.TotalPages 1 }} 7 <ul class="pagination"> 8 {{ if $paginator.HasPrev }} 9 {{ if ne $paginator.PageNumber 1 }} 10 <li><a href="{{ $paginator.First.URL }}">«</a></li> 11 {{ end }} 12 <li class="hidden"><a href="{{ $paginator.Prev.URL }}">‹</a></li> 13 {{ end }} 14 {{ range $paginator.Pagers }} 15 {{ $.Scratch.Set "page_number_flag" false }} 16 {{ if gt $paginator.TotalPages $max_links }} 17 {{ if le $paginator.PageNumber $lower_limit }} 18 {{ if le .PageNumber $max_links }} 19 {{ $.Scratch.Set "page_number_flag" true }} 20 {{ end }} 21 {{ else if ge $paginator.PageNumber $upper_limit }} 22 {{ if gt .PageNumber (sub $paginator.TotalPages $max_links) }} 23 {{ $.Scratch.Set "page_number_flag" true }} 24 {{ end }} 25 {{ else }} 26 {{ if and ( ge .PageNumber (sub $paginator.PageNumber $adjacent_links) ) ( le .PageNumber (add $paginator.PageNumber $adjacent_links) ) }} 27 {{ $.Scratch.Set "page_number_flag" true }} 28 {{ end }} 29 {{ end }} 30 {{ else }} 31 {{ $.Scratch.Set "page_number_flag" true }} 32 {{ end }} 33 {{ if eq ($.Scratch.Get "page_number_flag") true }} 34 {{ if eq . $paginator }} 35 <li>{{ .PageNumber }}</li> 36 {{ else }} 37 <li><a href="{{ .URL }}">{{ .PageNumber }}</a></li> 38 {{ end }} 39 {{ end }} 40 {{ end }} 41 {{ if $paginator.HasNext }} 42 <li class="hidden"><a href="{{ $paginator.Next.URL }}">›</a></li> 43 {{ if ne $paginator.PageNumber $paginator.TotalPages }} 44 <li><a href="{{ $paginator.Last.URL }}">»</a></li> 45 {{ end }} 46 {{ end }} 47 </ul> 48 {{ end }}