feat: improve pagination

This commit is contained in:
2026-08-08 18:37:45 +02:00
parent 7997a5b895
commit ba1077b0c8
5 changed files with 56 additions and 111 deletions
@@ -10,10 +10,6 @@
<div class="content content-list">{{ .Content }}</div>
{{- end }}
{{- if .Paginator.HasPrev }}
{{ partial "pagination.html" . }}
{{- end }}
<div class="posts-list">
{{ range $paginator.Pages }}
<div class="post">
@@ -1,20 +1,46 @@
<div class="pagination">
<div class="pagination__buttons">
{{ if .Paginator.HasPrev }}
{{- if .Paginator.HasPrev }}
<span class="button previous">
<a href="{{ .Paginator.Prev.URL }}">
<span class="button__icon">←</span>
<span class="button__text">Newer posts</span>
<span class="button__text">Previous</span>
</a>
</span>
{{ end }}
{{ if .Paginator.HasNext }}
{{- end }}
{{- with .Paginator }}
{{- $currentPage := .PageNumber }}
{{- $totalPages := .TotalPages }}
{{- if gt $totalPages 1 }}
<ol>
{{- range .Pagers }}
{{- $isFirst := eq .PageNumber 1 }}
{{- $isLast := eq .PageNumber $totalPages }}
{{- $inWindow := and (ge .PageNumber (sub $currentPage 2)) (le .PageNumber (add $currentPage 2)) }}
{{- $showPrevEllipsis := and (gt $currentPage 4) (eq .PageNumber 2) }}
{{- $showNextEllipsis := and (lt $currentPage (sub $totalPages 3)) (eq .PageNumber (sub $totalPages 1)) }}
{{- if or $showPrevEllipsis $showNextEllipsis }}
<li class="button disabled">
<span class="button__text">&hellip;</span>
</li>
{{- else if or $isFirst $isLast $inWindow }}
<li class="button {{- if eq $currentPage .PageNumber }} disabled active{{ end }}">
<a href="{{ .URL }}">
<span class="button__text">{{ .PageNumber }}</span>
</a>
</li>
{{- end }}
{{- end }}
</ol>
{{- end }}
{{- end }}
{{- if .Paginator.HasNext }}
<span class="button next">
<a href="{{ .Paginator.Next.URL }}">
<span class="button__text">Older posts</span>
<span class="button__text">Next</span>
<span class="button__icon">→</span>
</a>
</span>
{{ end }}
{{- end }}
</div>
</div>
@@ -10,10 +10,6 @@
<div class="content content-list">{{ .Content }}</div>
{{- end }}
{{- if .Paginator.HasPrev }}
{{ partial "pagination.html" . }}
{{- end }}
<div class="posts-list masonry">
{{ range $paginator.Pages }}
<div class="post">