From d53b6ab5ec8d5648201efc6308306e0c222b65fd Mon Sep 17 00:00:00 2001 From: amzrk2 Date: Sat, 18 Apr 2020 18:08:13 +0800 Subject: Smart pagination --- assets/sass/_pagination.scss | 24 +++++----- layouts/_default/archives.html | 58 +++++++++++++++++++++-- layouts/_default/list.html | 58 +++++++++++++++++++++-- layouts/_default/tag.html | 63 +++++++++++++++++++++++-- layouts/partials/fas/fa-angle-double-left.html | 1 + layouts/partials/fas/fa-angle-double-right.html | 1 + layouts/partials/fas/fa-angle-left.html | 1 + layouts/partials/fas/fa-angle-right.html | 1 + layouts/partials/fas/fa-angle-up.html | 1 + layouts/partials/scripts.html | 2 +- 10 files changed, 185 insertions(+), 25 deletions(-) create mode 100644 layouts/partials/fas/fa-angle-double-left.html create mode 100644 layouts/partials/fas/fa-angle-double-right.html create mode 100644 layouts/partials/fas/fa-angle-left.html create mode 100644 layouts/partials/fas/fa-angle-right.html create mode 100644 layouts/partials/fas/fa-angle-up.html diff --git a/assets/sass/_pagination.scss b/assets/sass/_pagination.scss index 8e5d248..6c5200b 100644 --- a/assets/sass/_pagination.scss +++ b/assets/sass/_pagination.scss @@ -1,28 +1,26 @@ #pagination { - font-size: $font-size-l3; text-align: center; // spliter between pagination and last post block border-top: $spliter; padding: 1em 0 1em 0; - ul li { + li { display: inline; @include link-primary(); - // darker number when active - &.active a { - color: $color-primary-dark; + &.pag-item a { + vertical-align: middle; } - // remove prev page at first page, next page at last page - &.disabled { - display: none; + // darker number when active + &.pag-current a { + color: $color-secondary; } + } - // remove first page link and last page link - &:first-child, - &:last-child { - display: none; - } + svg { + height: 1em; + width: 1em; + vertical-align: middle; } } \ No newline at end of file diff --git a/layouts/_default/archives.html b/layouts/_default/archives.html index d4459ff..dab458f 100644 --- a/layouts/_default/archives.html +++ b/layouts/_default/archives.html @@ -14,9 +14,61 @@ {{ end }} + +{{ $offsetLinks := 2 }} +{{ $maxLinks := (add (mul $offsetLinks 2) 1) }} +{{ $lowerLimit := (add $offsetLinks 1) }} +{{ $upperLimit := (sub $paginator.TotalPages $offsetLinks) }} {{ if gt $paginator.TotalPages 1 }} - + {{ end }} + {{ end }} \ No newline at end of file diff --git a/layouts/_default/list.html b/layouts/_default/list.html index e459763..567e577 100644 --- a/layouts/_default/list.html +++ b/layouts/_default/list.html @@ -17,9 +17,61 @@ {{ end }} + +{{ $offsetLinks := 2 }} +{{ $maxLinks := (add (mul $offsetLinks 2) 1) }} +{{ $lowerLimit := (add $offsetLinks 1) }} +{{ $upperLimit := (sub $paginator.TotalPages $offsetLinks) }} {{ if gt $paginator.TotalPages 1 }} - + {{ end }} + {{ end }} \ No newline at end of file diff --git a/layouts/_default/tag.html b/layouts/_default/tag.html index 4373558..dd15f58 100644 --- a/layouts/_default/tag.html +++ b/layouts/_default/tag.html @@ -3,7 +3,8 @@ {{ i18n "tagsCurrentTag" . }} -{{ range .Paginator.Pages }} +{{ $paginator := .Paginator }} +{{ range $paginator.Pages }}

{{ .Title }} @@ -19,9 +20,61 @@

{{ end }} -{{ if gt .Paginator.TotalPages 1 }} - + +{{ $offsetLinks := 2 }} +{{ $maxLinks := (add (mul $offsetLinks 2) 1) }} +{{ $lowerLimit := (add $offsetLinks 1) }} +{{ $upperLimit := (sub $paginator.TotalPages $offsetLinks) }} +{{ if gt $paginator.TotalPages 1 }} + {{ end }} + {{ end }} \ No newline at end of file diff --git a/layouts/partials/fas/fa-angle-double-left.html b/layouts/partials/fas/fa-angle-double-left.html new file mode 100644 index 0000000..95887a1 --- /dev/null +++ b/layouts/partials/fas/fa-angle-double-left.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/layouts/partials/fas/fa-angle-double-right.html b/layouts/partials/fas/fa-angle-double-right.html new file mode 100644 index 0000000..998f859 --- /dev/null +++ b/layouts/partials/fas/fa-angle-double-right.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/layouts/partials/fas/fa-angle-left.html b/layouts/partials/fas/fa-angle-left.html new file mode 100644 index 0000000..39198fc --- /dev/null +++ b/layouts/partials/fas/fa-angle-left.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/layouts/partials/fas/fa-angle-right.html b/layouts/partials/fas/fa-angle-right.html new file mode 100644 index 0000000..26cb61e --- /dev/null +++ b/layouts/partials/fas/fa-angle-right.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/layouts/partials/fas/fa-angle-up.html b/layouts/partials/fas/fa-angle-up.html new file mode 100644 index 0000000..47ffb0b --- /dev/null +++ b/layouts/partials/fas/fa-angle-up.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/layouts/partials/scripts.html b/layouts/partials/scripts.html index eceda37..e807e36 100644 --- a/layouts/partials/scripts.html +++ b/layouts/partials/scripts.html @@ -49,7 +49,7 @@ trailColor: '#E5E2E4', trailWidth: 12, text: { - value: '', + value: '{{ partial "fas/fa-angle-up" . }}', autoStyleContainer: false, style: null }, -- cgit v1.2.3