pagination.html 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. {{ $pag := $.Paginator }}
  2. {{ $window := $.Site.Params.paginateWindow | default 1 }}
  3. {{ if gt $pag.TotalPages 1 }}
  4. {{ $total := $pag.TotalPages }}
  5. {{ $size := add 5 (add $window $window) }}
  6. {{ $cur := $pag.PageNumber }}
  7. {{ if gt $total $size }}
  8. {{ if lt $cur (sub $size (add $window 1)) }}
  9. {{ $.Scratch.Set "show" (seq 1 (sub $size 2)) }}
  10. {{ else if lt (sub $total $cur) (sub $size (add $window 2)) }}
  11. {{ $.Scratch.Set "show" (seq (add (sub $total $size) 3) $total) }}
  12. {{ else }}
  13. {{ $.Scratch.Set "show" (seq (sub $cur $window) (add $cur $window)) }}
  14. {{ end }}
  15. {{ $.Scratch.Add "show" 1 }}
  16. {{ $.Scratch.Add "show" $total }}
  17. {{ else }}
  18. {{ $.Scratch.Set "show" (seq 1 $total) }}
  19. {{ end }}
  20. <ul class="pagination">
  21. {{ range $pag.Pagers }}
  22. {{ $cur := .PageNumber }}
  23. {{ if in ($.Scratch.Get "show") $cur }}
  24. <li
  25. {{ if eq . $pag }}class="active"{{ end }}><a href="{{ .URL }}">{{ .PageNumber }}</a></li>
  26. {{ else if in (slice 2 (sub $total 1)) $cur }}
  27. <li class="disabled"><a name="">&hellip;</a></li>
  28. {{ end }}
  29. {{ end }}
  30. </ul>
  31. {{ end }}