1
0

pagination.html 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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 }}">&laquo;</a></li>
  11. {{ end }}
  12. <li class="hidden"><a href="{{ $paginator.Prev.URL }}">&lsaquo;</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 }}">&rsaquo;</a></li>
  43. {{ if ne $paginator.PageNumber $paginator.TotalPages }}
  44. <li><a href="{{ $paginator.Last.URL }}">&raquo;</a></li>
  45. {{ end }}
  46. {{ end }}
  47. </ul>
  48. {{ end }}