Skip to content

Commit b6ea492

Browse files
committed
tmplimpl: Add support for ellipsed paginator
Fixes #3466
1 parent 6e2f2dd commit b6ea492

File tree

1 file changed

+41
-26
lines changed

1 file changed

+41
-26
lines changed

‎tpl/tplimpl/template_embedded.go‎

Lines changed: 41 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -123,32 +123,47 @@ func (t *templateHandler) embedTemplates() {
123123
`)
124124

125125
t.addInternalTemplate("", "pagination.html", `{{ $pag := $.Paginator }}
126-
{{ if gt $pag.TotalPages 1 }}
127-
<ul class="pagination">
128-
{{ with $pag.First }}
129-
<li>
130-
<a href="{{ .URL }}" aria-label="First"><span aria-hidden="true">&laquo;&laquo;</span></a>
131-
</li>
132-
{{ end }}
133-
<li
134-
{{ if not $pag.HasPrev }}class="disabled"{{ end }}>
135-
<a href="{{ if $pag.HasPrev }}{{ $pag.Prev.URL }}{{ end }}" aria-label="Previous"><span aria-hidden="true">&laquo;</span></a>
136-
</li>
137-
{{ range $pag.Pagers }}
138-
<li
139-
{{ if eq . $pag }}class="active"{{ end }}><a href="{{ .URL }}">{{ .PageNumber }}</a></li>
140-
{{ end }}
141-
<li
142-
{{ if not $pag.HasNext }}class="disabled"{{ end }}>
143-
<a href="{{ if $pag.HasNext }}{{ $pag.Next.URL }}{{ end }}" aria-label="Next"><span aria-hidden="true">&raquo;</span></a>
144-
</li>
145-
{{ with $pag.Last }}
146-
<li>
147-
<a href="{{ .URL }}" aria-label="Last"><span aria-hidden="true">&raquo;&raquo;</span></a>
148-
</li>
149-
{{ end }}
150-
</ul>
151-
{{ end }}`)
126+
{{ if gt $pag.TotalPages 1 }}
127+
<ul class="pagination">
128+
{{ with $pag.First }}
129+
<li>
130+
<a href="{{ .URL }}" aria-label="First"><span aria-hidden="true">&laquo;&laquo;</span></a>
131+
</li>
132+
{{ end }}
133+
<li
134+
{{ if not $pag.HasPrev }}class="disabled"{{ end }}>
135+
<a href="{{ if $pag.HasPrev }}{{ $pag.Prev.URL }}{{ end }}" aria-label="Previous"><span aria-hidden="true">&laquo;</span></a>
136+
</li>
137+
{{ $.Scratch.Set "__paginator.ellipsed" false }}
138+
{{ range $pag.Pagers }}
139+
{{ $right := sub .TotalPages .PageNumber }}
140+
{{ $showNumber := or (le .PageNumber 3) (eq $right 0) }}
141+
{{ $showNumber := or $showNumber (and (gt .PageNumber (sub $pag.PageNumber 2)) (lt .PageNumber (add $pag.PageNumber 2))) }}
142+
{{ if $showNumber }}
143+
{{ $.Scratch.Set "__paginator.ellipsed" false }}
144+
{{ $.Scratch.Set "__paginator.shouldEllipse" false }}
145+
{{ else }}
146+
{{ $.Scratch.Set "__paginator.shouldEllipse" (not ($.Scratch.Get "__paginator.ellipsed") ) }}
147+
{{ $.Scratch.Set "__paginator.ellipsed" true }}
148+
{{ end }}
149+
{{ if $showNumber }}
150+
<li
151+
{{ if eq . $pag }}class="active"{{ end }}><a href="{{ .URL }}">{{ .PageNumber }}</a></li>
152+
{{ else if ($.Scratch.Get "__paginator.shouldEllipse") }}
153+
<li class="disabled"><span aria-hidden="true">&hellip;</span></li>
154+
{{ end }}
155+
{{ end }}
156+
<li
157+
{{ if not $pag.HasNext }}class="disabled"{{ end }}>
158+
<a href="{{ if $pag.HasNext }}{{ $pag.Next.URL }}{{ end }}" aria-label="Next"><span aria-hidden="true">&raquo;</span></a>
159+
</li>
160+
{{ with $pag.Last }}
161+
<li>
162+
<a href="{{ .URL }}" aria-label="Last"><span aria-hidden="true">&raquo;&raquo;</span></a>
163+
</li>
164+
{{ end }}
165+
</ul>
166+
{{ end }}`)
152167

153168
t.addInternalTemplate("", "disqus.html", `{{ if .Site.DisqusShortname }}<div id="disqus_thread"></div>
154169
<script type="text/javascript">

0 commit comments

Comments
 (0)