diff --git a/layouts/partials/pagination.html b/layouts/partials/pagination.html index b244490..9912ec1 100644 --- a/layouts/partials/pagination.html +++ b/layouts/partials/pagination.html @@ -2,23 +2,65 @@ {{ if gt (len .Site.RegularPages) 10 }} + {{ if .Paginator.HasPrev }} - « + « Previous {{ else }} - « + « Previous {{ end }} - {{ range .Paginator.Pagers }} - - {{ .PageNumber }} + + + {{ $currentPage := .Paginator.PageNumber }} + {{ $totalPages := .Paginator.TotalPages }} + + + + 1 + + + + {{ if gt $currentPage 4 }} + + ... {{ end }} + + + {{ range .Paginator.Pagers }} + {{ $pageNumber := .PageNumber }} + {{ if and (gt $pageNumber 1) (lt $pageNumber $totalPages) (ge $pageNumber (sub $currentPage 1)) (le $pageNumber (add $currentPage 1)) }} + {{ if ne $pageNumber 1 }} + {{ if ne $pageNumber $totalPages }} + + {{ $pageNumber }} + + {{ end }} + {{ end }} + {{ end }} + {{ end }} + + + {{ if lt $currentPage (sub $totalPages 3) }} + + ... + + {{ end }} + + + {{ if gt $totalPages 1 }} + + {{ $totalPages }} + + {{ end }} + + {{ if .Paginator.HasNext }} - » + Next » {{ else }} - » + Next » {{ end }}