{{- $pag := $.Paginator }} {{- if gt $pag.TotalPages 1 }} <div class="pagination block"> {{- $.Scratch.Set "__paginator.ellipsed" false }} {{- range $pag.Pagers }} {{- $right := sub .TotalPages .PageNumber }} {{- $showNumber := or (le .PageNumber 3) (eq $right 0) }} {{- $showNumber := or $showNumber (and (gt .PageNumber (sub $pag.PageNumber 2)) (lt .PageNumber (add $pag.PageNumber 2))) }} {{- if $showNumber }} {{- $.Scratch.Set "__paginator.ellipsed" false }} {{- $.Scratch.Set "__paginator.shouldEllipse" false }} {{ else }} {{- $.Scratch.Set "__paginator.shouldEllipse" (not ($.Scratch.Get "__paginator.ellipsed") ) }} {{- $.Scratch.Set "__paginator.ellipsed" true }} {{- end }} {{- if $showNumber }} {{- if eq . $pag }}<span class="pagination__item pagination__item--active" data-total="{{ $pag.TotalPages }}">{{ .PageNumber }}</span>{{ else }}<a class="pagination__item pagination__item--desktop" href="{{ .URL }}">{{ .PageNumber }}</a>{{- end }} {{ else if ($.Scratch.Get "__paginator.shouldEllipse") }} <span class="pagination__item pagination__item--gap">…</span> {{- end }} {{- end }} </div> {{- end }}