summaryrefslogtreecommitdiff
path: root/_includes/paginator.html
blob: 595648170ca23898bf24d955f25099b64a3a0b9c (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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
{%- if paginator.total_pages > 1 -%}
  <div class="pagination">

    {%- include snippets/get-locale-string.html key='STATISTICS' -%}
    {%- assign _locale_statistics = __return -%}

    {%- assign _post_count = site.posts | size -%}
    {%- assign _page_count = paginator.total_pages -%}
    <p>{{ _locale_statistics | replace: '[POST_COUNT]', _post_count | replace: '[PAGE_COUNT]', _page_count }}</p>
    <div class="pagination__menu">
      <ul class="menu menu--nowrap">
        {%- assign _max_show = 5 -%}
        {%- assign _max_show_modulo_two = _max_show | modulo: 2 -%}
        {%- assign _length = paginator.total_pages -%}
        {%- assign _length_mimus_one = _length | minus: 1 -%}
        {%- assign _cur = paginator.page -%}
        {%- assign _extra = _max_show | minus: 3 -%}
        {%- assign _extra_half = _extra | divided_by: 2 -%}

        {%- if  _max_show > 4 and _max_show_modulo_two == 1 and paginator.total_pages > _max_show -%}
          {%- assign _condition0 = _extra | divided_by: 2 | plus: 1 -%}
          {%- assign _condition1 = _length | minus: _extra_half  -%}
          {%- if _cur <= _condition0 -%}
            {%- assign _n0 = 2 -%}
            {%- assign _n1 = _extra | plus: 2 -%}
          {%- elsif _cur >= _condition1 -%}
            {%- assign _n0 = _length | minus: _extra | minus: 1 -%}
            {%- assign _n1 = _length | minus: 1 -%}
          {%- else -%}
            {%- assign _n0 = _cur | minus: _extra_half -%}
            {%- assign _n1 = _cur | plus: _extra_half -%}
          {%- endif -%}
        {%- endif -%}

        {%- if paginator.previous_page -%}
          {%- include snippets/prepend-baseurl.html path=paginator.previous_page_path -%}
          {%- assign _href = __return -%}
          <li><a class="button button--secondary button--circle" href="{{ _href }}">
            <i class="fas fa-angle-left"></i>
          </a></li>
        {%- else -%}
          <li><div class="button button--secondary button--circle disabled">
            <i class="fas fa-angle-left"></i>
          </div></li>
        {%- endif -%}

        {%- for page in (1.._length) -%}
          {%- if page == _cur -%}
            <li>
              <div class="button button--primary button--circle focus"><span>{{ page }}</span></div>
            </li>

          {%- elsif page == 1 -%}
            {%- assign _home_path = site.paths.home | default: site.data.variables.default.paths.home -%}
            {%- include snippets/prepend-baseurl.html path=_home_path -%}
            {%- assign _href = __return -%}
            <li>
              <a class="button button--secondary button--circle" href="{{ _href }}"><span>{{ page }}</span></a>
            </li>

          {%- else -%}
            {%- if _n0 and _n1 -%}
              {%- if page > 1 and page < _n0 -%}
                {%- if page == 2 -%}<li><span class="pagination__omit"><i class="fas fa-ellipsis-h"></i></span></li>{%- endif -%}
              {%- elsif page > _n1 and page < _length -%}
                {%- if page == _length_mimus_one -%}<li><span class="pagination__omit"><i class="fas fa-ellipsis-h"></i></span></li>{%- endif -%}
              {%- else -%}
                {%- include snippets/prepend-baseurl.html path=site.paginate_path -%}
                {%- assign _href = __return -%}
                <li>
                  <a class="button button--secondary button--circle" href="{{ _href | replace: ':num', page }}"><span>{{ page }}</span></a>
                </li>
              {%- endif -%}
            {%- else -%}
              {%- include snippets/prepend-baseurl.html path=site.paginate_path -%}
              {%- assign _href = __return -%}
              <li>
                <a class="button button--secondary button--circle" href="{{ _href | replace: ':num', page }}"><span>{{ page }}</span></a>
              </li>
            {%- endif -%}
          {%- endif -%}
        {%- endfor -%}

        {%- if paginator.next_page -%}
          {%- include snippets/prepend-baseurl.html path=paginator.next_page_path -%}
          {%- assign _href = __return -%}
          <li><a class="button button--secondary button--circle" href="{{ _href }}">
            <i class="fas fa-angle-right"></i>
          </a></li>
        {%- else -%}
          <li><div class="button button--secondary button--circle disabled">
            <i class="fas fa-angle-right"></i>
          </div></li>
        {%- endif -%}
      </ul>
    </div>
  </div>
{%- endif -%}