summaryrefslogtreecommitdiffstats
path: root/layouts
diff options
context:
space:
mode:
authorSerghei Iakovlev <egrep@protonmail.ch>2022-05-29 22:26:59 +0200
committerSerghei Iakovlev <egrep@protonmail.ch>2022-05-29 22:26:59 +0200
commit0622836d5cb3076a6e23ed34583655c152403ca3 (patch)
tree2154e9befa4bc5fa09bca3f19b4c2e4e0661c591 /layouts
parente10cd65cab6cfcd60f09885aa00f9bb876ca4d1e (diff)
downloadgohugo-theme-ed-0622836d5cb3076a6e23ed34583655c152403ca3.tar.gz
Add pagination support
Diffstat (limited to 'layouts')
-rw-r--r--layouts/_default/list.html.html19
-rw-r--r--layouts/_default/teaser.html20
-rw-r--r--layouts/index.html8
-rw-r--r--layouts/page/all-posts.html22
-rw-r--r--layouts/partials/mini-toc.html9
-rw-r--r--layouts/partials/pagination.html33
6 files changed, 64 insertions, 47 deletions
diff --git a/layouts/_default/list.html.html b/layouts/_default/list.html.html
index 1badde4..fc39714 100644
--- a/layouts/_default/list.html.html
+++ b/layouts/_default/list.html.html
@@ -1,13 +1,24 @@
{{ define "main" }}
+
<div class="articles">
+ {{/* Render category name if any */}}
{{ with .Title }}<h1 class="page-title">{{ . }}</h1>{{ end }}
+
+ {{/* Render category content if any */}}
{{ with .Content }}
- <div class="category-content">
+ <div class="section-content">
{{ .Content }}
</div>
{{ end }}
- {{ range .Paginator.Pages }}
- {{ .Render "teaser" }}
- {{ end }}
+
+ {{/* Render posts list */}}
+ <div class="post-list">
+ {{ range .Paginator.Pages }}
+ {{ .Render "teaser" }}
+ {{ end }}
+
+ {{- partial "pagination.html" . -}}
+ </div>
</div>
+
{{ end }}
diff --git a/layouts/_default/teaser.html b/layouts/_default/teaser.html
index 8edf8b4..441d779 100644
--- a/layouts/_default/teaser.html
+++ b/layouts/_default/teaser.html
@@ -1,19 +1,19 @@
-<article class="blog-post">
+<article class="post">
{{/* TODO: partial "post-thumbnail.html" (dict "class" "list" "page" .) */}}
<header>
- <h2 class="blog-post-title">
+ <h2 class="post-title">
<a href="{{ .Permalink }}" rel="bookmark">{{ .Title }}</a>
</h2>
{{- partial "post-meta.html" . -}}
</header>
- <p class="blog-post-content">
+ <p class="post-content">
{{ .Summary }}
</p>
- {{- if site.Params.readmore }}
- {{- if .Truncated }}
- <footer>
- <a href="{{ .RelPermalink }}" class="read-more">{{ i18n "more" }}</a>
- </footer>
- {{- end }}
- {{- end }}
+ {{ if site.Params.readmore }}
+ {{ if .Truncated }}
+ <footer>
+ <a href="{{ .RelPermalink }}" class="read-more">{{ i18n "more" }}</a>
+ </footer>
+ {{ end }}
+ {{ end }}
</article>
diff --git a/layouts/index.html b/layouts/index.html
index c82855c..70bdad1 100644
--- a/layouts/index.html
+++ b/layouts/index.html
@@ -7,11 +7,15 @@
<hr>
{{ partial "mini-toc" . }}
{{ else }}
- {{- $mainSections := site.Params.mainSections | default (slice "posts") }}
+ {{ $mainSections := site.Params.mainSections | default (slice "posts") }}
{{ $paginator := .Paginate (where site.RegularPages.ByDate.Reverse "Section" "in" $mainSections) }}
<div class="articles">
{{ with .Title }}<h1 class="page-title">{{ . }}</h1>{{ end }}
- {{ range $paginator.Pages }}{{- .Render "teaser" }}{{ end }}
+
+ {{ range $paginator.Pages }}
+ {{ .Render "teaser" }}
+ {{ end }}
</div>
{{ end }}
+
{{ end }}
diff --git a/layouts/page/all-posts.html b/layouts/page/all-posts.html
deleted file mode 100644
index a26b084..0000000
--- a/layouts/page/all-posts.html
+++ /dev/null
@@ -1,22 +0,0 @@
-{{ define "main" }}
-{{/* Define a section to pull recent posts from.
- This will default to the section with the most number of pages. */}}
-{{ $mainSections := site.Params.mainSections | default (slice "posts") }}
-
-{{/* Create a variable with that section to use in multiple places. */}}
-{{ $section := where site.RegularPages.ByDate.Reverse "Section" "in" $mainSections }}
-
-<div class="articles">
- {{ with .Title }}<h1 class="page-title">{{ . }}</h1>{{ end }}
-
- {{ with .Content }}
- <div class="category-content">
- {{ .Content }}
- </div>
- {{ end }}
-
- {{ range $section }}
- {{ .Render "teaser" }}
- {{ end }}
-</div>
-{{ end }}
diff --git a/layouts/partials/mini-toc.html b/layouts/partials/mini-toc.html
index 6b52f47..0d52866 100644
--- a/layouts/partials/mini-toc.html
+++ b/layouts/partials/mini-toc.html
@@ -21,14 +21,5 @@
</li>
{{ end }}
</ul>
-
- {{ if gt $sectionCount $maxPosts }}
- <p>
- <a href="{{ "all-posts" | relURL }}">
- {{ i18n "all_publications" }}
- <span aria-hidden="true">&rarr;</span>
- </a>
- </p>
- {{ end }}
</div>
{{ end }}
diff --git a/layouts/partials/pagination.html b/layouts/partials/pagination.html
new file mode 100644
index 0000000..0e675a1
--- /dev/null
+++ b/layouts/partials/pagination.html
@@ -0,0 +1,33 @@
+{{ if gt .Paginator.TotalPages 1 }}
+ <div class="divider"></div>
+
+ <nav aria-label="pagination" class="pagination d-flex">
+ <ul class="pager d-flex">
+ {{ $.Scratch.Set "hasPrevDots" false }}
+ {{ $.Scratch.Set "hasNextDots" false }}
+
+ {{ range .Paginator.Pagers }}
+ {{ $currentItem := . }}
+ {{ if eq $currentItem $.Paginator }}
+ <li class="pager-item pager-item-current">
+ {{- .PageNumber -}}
+ </li>
+ {{ else if or (or (eq . $.Paginator.First) (eq . $.Paginator.Prev)) (or (eq . $.Paginator.Next) (eq . $.Paginator.Last )) }}
+ <li class="pager-item{{ if eq . $.Paginator.Next }} pager-item-next{{ else if eq . $.Paginator.Prev }} pager-item-prev{{ end }}">
+ <a href="{{ .URL }}"{{ if eq . $.Paginator.Next }} rel="next"{{ else if eq . $.Paginator.Prev }} rel="prev"{{ end }} class="pager-link">
+ {{- .PageNumber -}}
+ </a>
+ </li>
+ {{ else }}
+ {{ if and (not ($.Scratch.Get "hasPrevDots")) (lt .PageNumber $.Paginator.PageNumber) }}
+ {{ $.Scratch.Set "hasPrevDots" true }}
+ <li class='pager-item pager-item-dots'>&hellip;</li>
+ {{ else if and (not ($.Scratch.Get "hasNextDots")) (gt .PageNumber $.Paginator.PageNumber) }}
+ {{ $.Scratch.Set "hasNextDots" true }}
+ <li class='pager-item pager-item-dots'>&hellip;</li>
+ {{ end }}
+ {{ end }}
+ {{ end }}
+ </ul>
+ </nav>
+{{ end }}