diff options
Diffstat (limited to 'layouts')
-rw-r--r-- | layouts/_default/archives.html | 58 | ||||
-rw-r--r-- | layouts/_default/list.html | 58 | ||||
-rw-r--r-- | layouts/_default/tag.html | 63 | ||||
-rw-r--r-- | layouts/partials/fas/fa-angle-double-left.html | 1 | ||||
-rw-r--r-- | layouts/partials/fas/fa-angle-double-right.html | 1 | ||||
-rw-r--r-- | layouts/partials/fas/fa-angle-left.html | 1 | ||||
-rw-r--r-- | layouts/partials/fas/fa-angle-right.html | 1 | ||||
-rw-r--r-- | layouts/partials/fas/fa-angle-up.html | 1 | ||||
-rw-r--r-- | layouts/partials/scripts.html | 2 |
9 files changed, 174 insertions, 12 deletions
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 @@ </div> </div> {{ end }} +<!-- custom smart pagination --> +{{ $offsetLinks := 2 }} +{{ $maxLinks := (add (mul $offsetLinks 2) 1) }} +{{ $lowerLimit := (add $offsetLinks 1) }} +{{ $upperLimit := (sub $paginator.TotalPages $offsetLinks) }} {{ if gt $paginator.TotalPages 1 }} -<div id="pagination"> - {{ template "_internal/pagination.html" . }} -</div> +<ul id="pagination"> + {{ if ne $paginator.PageNumber 1 }} + <li class="pag-first"> + <a href="{{ $paginator.First.URL }}">{{ partial "fas/fa-angle-double-left" . }}</a> + </li> + {{ end }} + {{ if $paginator.HasPrev }} + <li class="pag-previous"> + <a href="{{ $paginator.Prev.URL }}">{{ partial "fas/fa-angle-left" . }}</a> + </li> + {{ end }} + + {{ range $paginator.Pagers }} + {{ $.Scratch.Set "pageNumFlag" false }} + {{ if gt $paginator.TotalPages $maxLinks }} + {{ if le $paginator.PageNumber $lowerLimit }} + {{ if le .PageNumber $maxLinks }} + {{ $.Scratch.Set "pageNumFlag" true }} + {{ end }} + {{ else if ge $paginator.PageNumber $upperLimit }} + {{ if gt .PageNumber (sub $paginator.TotalPages $maxLinks) }} + {{ $.Scratch.Set "pageNumFlag" true }} + {{ end }} + {{ else }} + {{ if and ( ge .PageNumber (sub $paginator.PageNumber $offsetLinks) ) ( le .PageNumber (add $paginator.PageNumber $offsetLinks) ) }} + {{ $.Scratch.Set "pageNumFlag" true }} + {{ end }} + {{ end }} + {{ else }} + {{ $.Scratch.Set "pageNumFlag" true }} + {{ end }} + {{ if eq ($.Scratch.Get "pageNumFlag") true }} + <li class="pag-item{{ if eq . $paginator }} pag-current{{ end }}"> + <a href="{{ .URL }}">{{ .PageNumber }}</a> + </li> + {{ end }} + {{ end }} + + {{ if $paginator.HasNext }} + <li class="pag-next"> + <a href="{{ $paginator.Next.URL }}">{{ partial "fas/fa-angle-right" . }}</a> + </li> + {{ end }} + {{ if ne $paginator.PageNumber $paginator.TotalPages }} + <li class="pag-last"> + <a href="{{ $paginator.Last.URL }}">{{ partial "fas/fa-angle-double-right" . }}</a> + </li> + {{ end }} +</ul> {{ 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 @@ </div> </div> {{ end }} +<!-- custom smart pagination --> +{{ $offsetLinks := 2 }} +{{ $maxLinks := (add (mul $offsetLinks 2) 1) }} +{{ $lowerLimit := (add $offsetLinks 1) }} +{{ $upperLimit := (sub $paginator.TotalPages $offsetLinks) }} {{ if gt $paginator.TotalPages 1 }} -<div id="pagination"> - {{ template "_internal/pagination.html" . }} -</div> +<ul id="pagination"> + {{ if ne $paginator.PageNumber 1 }} + <li class="pag-first"> + <a href="{{ $paginator.First.URL }}">{{ partial "fas/fa-angle-double-left" . }}</a> + </li> + {{ end }} + {{ if $paginator.HasPrev }} + <li class="pag-previous"> + <a href="{{ $paginator.Prev.URL }}">{{ partial "fas/fa-angle-left" . }}</a> + </li> + {{ end }} + + {{ range $paginator.Pagers }} + {{ $.Scratch.Set "pageNumFlag" false }} + {{ if gt $paginator.TotalPages $maxLinks }} + {{ if le $paginator.PageNumber $lowerLimit }} + {{ if le .PageNumber $maxLinks }} + {{ $.Scratch.Set "pageNumFlag" true }} + {{ end }} + {{ else if ge $paginator.PageNumber $upperLimit }} + {{ if gt .PageNumber (sub $paginator.TotalPages $maxLinks) }} + {{ $.Scratch.Set "pageNumFlag" true }} + {{ end }} + {{ else }} + {{ if and ( ge .PageNumber (sub $paginator.PageNumber $offsetLinks) ) ( le .PageNumber (add $paginator.PageNumber $offsetLinks) ) }} + {{ $.Scratch.Set "pageNumFlag" true }} + {{ end }} + {{ end }} + {{ else }} + {{ $.Scratch.Set "pageNumFlag" true }} + {{ end }} + {{ if eq ($.Scratch.Get "pageNumFlag") true }} + <li class="pag-item{{ if eq . $paginator }} pag-current{{ end }}"> + <a href="{{ .URL }}">{{ .PageNumber }}</a> + </li> + {{ end }} + {{ end }} + + {{ if $paginator.HasNext }} + <li class="pag-next"> + <a href="{{ $paginator.Next.URL }}">{{ partial "fas/fa-angle-right" . }}</a> + </li> + {{ end }} + {{ if ne $paginator.PageNumber $paginator.TotalPages }} + <li class="pag-last"> + <a href="{{ $paginator.Last.URL }}">{{ partial "fas/fa-angle-double-right" . }}</a> + </li> + {{ end }} +</ul> {{ 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 @@ <span>{{ i18n "tagsCurrentTag" . }}</span> </div> <!-- tags page range in posts --> -{{ range .Paginator.Pages }} +{{ $paginator := .Paginator }} +{{ range $paginator.Pages }} <div id="post"> <h2 id="post-title"> <a href="{{ .Permalink }}">{{ .Title }}</a> @@ -19,9 +20,61 @@ </div> </div> {{ end }} -{{ if gt .Paginator.TotalPages 1 }} -<div id="pagination"> - {{ template "_internal/pagination.html" . }} -</div> +<!-- custom smart pagination --> +{{ $offsetLinks := 2 }} +{{ $maxLinks := (add (mul $offsetLinks 2) 1) }} +{{ $lowerLimit := (add $offsetLinks 1) }} +{{ $upperLimit := (sub $paginator.TotalPages $offsetLinks) }} +{{ if gt $paginator.TotalPages 1 }} +<ul id="pagination"> + {{ if ne $paginator.PageNumber 1 }} + <li class="pag-first"> + <a href="{{ $paginator.First.URL }}">{{ partial "fas/fa-angle-double-left" . }}</a> + </li> + {{ end }} + {{ if $paginator.HasPrev }} + <li class="pag-previous"> + <a href="{{ $paginator.Prev.URL }}">{{ partial "fas/fa-angle-left" . }}</a> + </li> + {{ end }} + + {{ range $paginator.Pagers }} + {{ $.Scratch.Set "pageNumFlag" false }} + {{ if gt $paginator.TotalPages $maxLinks }} + {{ if le $paginator.PageNumber $lowerLimit }} + {{ if le .PageNumber $maxLinks }} + {{ $.Scratch.Set "pageNumFlag" true }} + {{ end }} + {{ else if ge $paginator.PageNumber $upperLimit }} + {{ if gt .PageNumber (sub $paginator.TotalPages $maxLinks) }} + {{ $.Scratch.Set "pageNumFlag" true }} + {{ end }} + {{ else }} + {{ if and ( ge .PageNumber (sub $paginator.PageNumber $offsetLinks) ) ( le .PageNumber (add $paginator.PageNumber $offsetLinks) ) }} + {{ $.Scratch.Set "pageNumFlag" true }} + {{ end }} + {{ end }} + {{ else }} + {{ $.Scratch.Set "pageNumFlag" true }} + {{ end }} + {{ if eq ($.Scratch.Get "pageNumFlag") true }} + <li class="pag-item{{ if eq . $paginator }} pag-current{{ end }}"> + <a href="{{ .URL }}">{{ .PageNumber }}</a> + </li> + {{ end }} + {{ end }} + + {{ if $paginator.HasNext }} + <li class="pag-next"> + <a href="{{ $paginator.Next.URL }}">{{ partial "fas/fa-angle-right" . }}</a> + </li> + {{ end }} + {{ if ne $paginator.PageNumber $paginator.TotalPages }} + <li class="pag-last"> + <a href="{{ $paginator.Last.URL }}">{{ partial "fas/fa-angle-double-right" . }}</a> + </li> + {{ end }} +</ul> {{ 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 @@ +<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="angle-double-left" class="svg-inline--fa fa-angle-double-left fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z"></path></svg>
\ 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 @@ +<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="angle-double-right" class="svg-inline--fa fa-angle-double-right fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z"></path></svg>
\ 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 @@ +<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="angle-left" class="svg-inline--fa fa-angle-left fa-w-8" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512"><path fill="currentColor" d="M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z"></path></svg>
\ 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 @@ +<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="angle-right" class="svg-inline--fa fa-angle-right fa-w-8" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512"><path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg>
\ 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 @@ +<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="angle-up" class="svg-inline--fa fa-angle-up fa-w-10" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path fill="currentColor" d="M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z"></path></svg>
\ 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: '<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="angle-up" class="svg-inline--fa fa-angle-up fa-w-10" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path fill="currentColor" d="M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z"></path></svg>', + value: '{{ partial "fas/fa-angle-up" . }}', autoStyleContainer: false, style: null }, |