aboutsummaryrefslogtreecommitdiff
path: root/generators/hugo/themes/tdro/layouts/partials/pagination.html
blob: 37000de64b061d8c7a1008e49a0e4a06e45351e1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
{{ $HugoPaginator := $.Paginator }}
{{ $Pages := sub $HugoPaginator.TotalNumberOfElements 1 }}
{{ $MyPaginator := math.Ceil (div (float $Pages) 3) }}

{{ if gt $HugoPaginator.TotalPages 1 }}

<nav class="pagination" aria-label="pagination">

  <a {{ if $HugoPaginator.HasPrev }} href="{{ $HugoPaginator.Prev.URL }}" {{ end }}
      class="pagination-previous {{ if not $HugoPaginator.HasPrev }}disabled{{ end }}"
			aria-label="Previous page" {{ if not $HugoPaginator.HasPrev }}aria-hidden="true"{{ end }}>
      Previous
  </a>

	<a {{ if not (le (int $MyPaginator) $HugoPaginator.PageNumber) }}{{ if $HugoPaginator.HasNext }} href="{{ $HugoPaginator.Next.URL }}" {{ end }}{{ end }}
    class="pagination-next {{ if le (int $MyPaginator) $HugoPaginator.PageNumber }}disabled{{ end }}"
			aria-label="Next page" {{ if le (int $MyPaginator) $HugoPaginator.PageNumber }}aria-hidden="true"{{ end }}>
      Next
  </a>

	<ul class="pagination-list">

  {{ $.Scratch.Set "__paginator.ellipsed" false }}
  {{ range (first $MyPaginator $HugoPaginator.Pagers) }}
  {{ $right := sub .TotalPages .PageNumber }}
  {{ $showNumber := or (le .PageNumber 3) (eq $right 0) }}
  {{ $showNumber := or $showNumber (and (gt .PageNumber (sub $HugoPaginator.PageNumber 2)) (lt .PageNumber (add $HugoPaginator.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 }}

        <li>
          <a href="{{ .URL }}" aria-label="Go to page {{ .PageNumber }}"
            class="pagination-link {{ if eq . $HugoPaginator }}is-current{{ end }}">
            {{ .PageNumber }}
          </a>
        </li>

      {{ else if ($.Scratch.Get "__paginator.shouldEllipse") }}

        <li><span class="pagination-ellipsis" aria-hidden="true">&hellip;</span></li>

      {{ end }}

  {{ end }}
	</ul>
</nav>
{{ end }}