aboutsummaryrefslogtreecommitdiff
path: root/generators/hugo/themes/tdro/layouts/partials/article-pagination.html
blob: 0d07e0eb6833d56bffa42179bf5ad6f746525267 (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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
{{- $HugoPaginator := $.Paginator -}}
{{- $Pages := $HugoPaginator.TotalNumberOfElements -}}
{{- $MyPaginator := math.Ceil (div (float $Pages) 3) -}}

{{ if gt $HugoPaginator.TotalPages 1 }}

<pagination-controller>
  <nav>

    <pagination-previous>
      <a {{ if $HugoPaginator.HasPrev }}
        href="{{ $HugoPaginator.Prev.URL }}"
        {{ end }}
        title="Previous page"
        {{ if not $HugoPaginator.HasPrev }}
        data-disabled
        {{ end }}
      >
        Previous
      </a>
    </pagination-previous>

    <ul>

    {{- $.Scratch.Set "__paginator.ellipsed" false -}}
    {{- range (first $MyPaginator $HugoPaginator.Pagers) -}}
    {{- $right := sub .TotalPages .PageNumber -}}
    {{- $showNumber := or (le .PageNumber 1) (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 }}"
            title="Go to page {{ .PageNumber }}"
            {{ if eq . $HugoPaginator }}data-pagination-current{{ end }}
          >
            {{ .PageNumber }}
          </a>
        </li>

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

        <li><pagination-ellipsis>&hellip;</pagination-ellipsis></li>

      {{ end }}

    {{ end }}
    </ul>
    <pagination-next>
      <a
        {{ if not (le (int $MyPaginator) $HugoPaginator.PageNumber) }}
        {{ if $HugoPaginator.HasNext }}
        href="{{ $HugoPaginator.Next.URL }}"
        {{ end }}
        {{ end }}
        title="Next page"
        {{ if le (int $MyPaginator) $HugoPaginator.PageNumber }}
        data-disabled
        {{ end }}
      >
        Next
      </a>
    </pagination-next>

  </nav>
</pagination-controller>
{{ end }}