{{- if gt $.Paginator.TotalPages 1 -}} <nav class="paginator"> {{- $pag := .Paginator -}} {{- $adjacent_links := default 2 .Site.Params.paginationAdjacentLinks -}} {{- $padded_adjacent_links := add $adjacent_links 2 -}} {{- $dynamic_range_start := sub $pag.PageNumber $padded_adjacent_links -}} {{- $dynamic_range_end := add $pag.PageNumber $padded_adjacent_links -}} {{- if gt $dynamic_range_end $pag.TotalPages -}} {{- $dynamic_range_start = sub $dynamic_range_start (sub $dynamic_range_end $pag.TotalPages) -}} {{- end -}} {{- if lt $dynamic_range_start 1 -}} {{- $dynamic_range_end = add $dynamic_range_end (sub 1 $dynamic_range_start) -}} {{- end -}} {{- $dynamic_range_start = add $dynamic_range_start (math.Min $dynamic_range_start 2) -}} {{- $dynamic_range_end = sub $dynamic_range_end (math.Min (sub $pag.TotalPages $dynamic_range_end -1) 2 ) -}} <!-- static start (if needed) --> {{- if ge $dynamic_range_start 2 -}} <a href="{{ $pag.First.URL }}" class="button">1</a> {{- if eq $dynamic_range_start 3 -}} <a href="{{ (index $pag.Pagers 2).URL }}" class="button">2</a> {{- end -}} {{- if gt $dynamic_range_start 3 -}} {{- $mid := div (add $dynamic_range_start 1) 2 | math.Floor | int -}} <a href="{{ (index $pag.Pagers (sub $mid 1)).URL }}" class="button">...</a> {{- end -}} {{- end -}} <!-- dynamic range - show neighbours --> {{- range $pag.Pagers -}} {{- if and (ge .PageNumber $dynamic_range_start) (le .PageNumber $dynamic_range_end) -}} {{- if eq . $pag -}} <span class="button current">{{ .PageNumber }}</span> {{- else -}} <a href="{{ .URL }}" class="button">{{ .PageNumber }}</a> {{- end -}} {{- end -}} {{- end -}} <!-- static end (if needed) --> {{- if ge (sub $pag.TotalPages $dynamic_range_end) 1 -}} {{- if eq (sub $pag.TotalPages $dynamic_range_end) 2 -}} <a href="{{ (index $pag.Pagers (sub $pag.TotalPages 1)).URL }}" class="button">ye</a> {{- end -}} {{- if gt (sub $pag.TotalPages $dynamic_range_end) 2 -}} {{- $mid := div (add $pag.TotalPages $dynamic_range_end) 2 | math.Ceil | int -}} <a href="{{ (index $pag.Pagers (sub $mid 1)).URL }}" class="button">...</a> {{- end -}} <a href="{{ $pag.Last.URL }}" class="button">{{ $pag.TotalPages }}</a> {{- end -}} </nav> {{- end -}} {{- /**/ -}}