site

personal website, served at mordaunt.dev/site
Log | Files | Refs

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 }}">&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 }}