mirror of
https://github.com/yrzam/yrzam-hugo-theme.git
synced 2025-04-19 12:19:09 +00:00
58 lines
2.4 KiB
HTML
58 lines
2.4 KiB
HTML
{{- 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 -}}
|
|
{{- /**/ -}}
|