{{- if gt .Paginator.TotalPages 1 -}}
  <ul class="flex flex-row mt-8 justify-center">
    {{- .Scratch.Set "paginator.ellipsed" false -}}
    {{ if $.Paginator.HasPrev }}
      <li>
        <a
          href="{{ $.Paginator.Prev.URL }}"
          class="mx-1 block min-w-[1.8rem] rounded text-center hover:bg-primary-600 hover:text-neutral"
          rel="prev"
          >&larr;</a
        >
      </li>
    {{ end }}
    {{- range $.Paginator.Pagers -}}
      {{- $right := sub .TotalPages .PageNumber -}}
      {{- $showNumber := or (le .PageNumber 1) (eq $right 0) -}}
      {{- $showNumber := or $showNumber (and (gt .PageNumber (sub $.Paginator.PageNumber 3)) (lt .PageNumber (add $.Paginator.PageNumber 3))) -}}
      {{- 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 -}}
        <li>
          <a
            href="{{ .URL }}"
            class="{{ if eq . $.Paginator }}
              bg-primary-200 dark:bg-primary-400 dark:text-neutral-800
            {{ end }} mx-1 block min-w-[1.8rem] rounded text-center hover:bg-primary-600 hover:text-neutral"
            >{{ .PageNumber }}</a
          >
        </li>
      {{- else if ($.Scratch.Get "paginator.shouldEllipse") -}}
        <li class="page-item ">
          <span class="page-link" aria-hidden="true">&hellip;</span>
        </li>
      {{- end -}}
    {{- end -}}
    {{ if $.Paginator.HasNext }}
      <li>
        <a
          href="{{ $.Paginator.Next.URL }}"
          class="mx-1 block min-w-[1.8rem] rounded text-center hover:bg-primary-600 hover:text-neutral"
          rel="next"
          >&rarr;</a
        >
      </li>
    {{ end }}
  </ul>
{{- end -}}
