{{ define "main" }}
-<div class="mx-auto px-4 py-12 max-w-4xl">
+<div class="mx-auto px-4 py-12 max-w-5xl">
<!-- Page title with taxonomy name -->
<h1 class="text-4xl md:text-5xl font-bold text-accent mb-12">
{{ i18n .Data.Plural }}
</h1>
- <!-- Articles list -->
- <div class="space-y-6 max-w-3xl">
- {{ $pinned := where .Pages "Params.pinned" true }}
- {{ $unpinned := where .Pages "Params.pinned" false }}
+ {{ $pinned := where .Pages "Params.pinned" true }}
+ {{ $unpinned := where .Pages "Params.pinned" false }}
- <!-- If no unpinned posts found (because param is undefined), get all non-pinned pages -->
+ <!-- If no unpinned posts found (because param is undefined), get all non-pinned pages -->
+ {{ if eq (len $unpinned) 0 }}
+ {{ $unpinned = where .Pages "Params.pinned" nil }}
{{ if eq (len $unpinned) 0 }}
- {{ $unpinned = where .Pages "Params.pinned" nil }}
- {{ if eq (len $unpinned) 0 }}
- {{ $unpinned = where .Pages "Params.pinned" "" }}
- {{ end }}
+ {{ $unpinned = where .Pages "Params.pinned" "" }}
{{ end }}
+ {{ end }}
- <!-- Pinned posts first -->
- {{ range (sort $pinned "Date" "desc") }}
- <div class="relative">
- {{ partial "article-list-item.html" . }}
- <span class="absolute top-4 right-4 px-2 py-0.5 rounded text-xs font-mono bg-surface text-text-dim border border-border/30">
- {{ i18n "postCount" .Pages.Len }}
- </span>
- </div>
+ {{ if eq (len .Pages) 0 }}
+ <div class="py-12 text-center text-text-dim">
+ {{ i18n "noRelated" }}
+ </div>
+ {{ else }}
+ <ol class="timeline" aria-label="{{ i18n .Data.Plural }}">
+ {{ range $i, $page := (sort $pinned "Date" "desc") }}
+ {{ $side := "left" }}
+ {{ if eq (mod $i 2) 0 }}{{ $side = "left" }}{{ else }}{{ $side = "right" }}{{ end }}
+ {{ partial "article-list-item.html" (dict "Page" $page "side" $side) }}
{{ end }}
-
- <!-- Regular posts -->
- {{ range (sort $unpinned "Date" "desc") }}
- <div class="relative">
- {{ partial "article-list-item.html" . }}
- <span class="absolute top-4 right-4 px-2 py-0.5 rounded text-xs font-mono bg-surface text-text-dim border border-border/30">
- {{ i18n "postCount" .Pages.Len }}
- </span>
- </div>
+ {{ $offset := len $pinned }}
+ {{ range $i, $page := (sort $unpinned "Date" "desc") }}
+ {{ $idx := add $i $offset }}
+ {{ $side := "left" }}
+ {{ if eq (mod $idx 2) 0 }}{{ $side = "left" }}{{ else }}{{ $side = "right" }}{{ end }}
+ {{ partial "article-list-item.html" (dict "Page" $page "side" $side) }}
{{ end }}
-
- <!-- Empty state -->
- {{ if eq (len .Pages) 0 }}
- <div class="py-12 text-center text-text-dim">
- {{ i18n "noRelated" }}
- </div>
- {{ end }}
- </div>
+ </ol>
+ {{ end }}
</div>
{{ end }}
{{ define "main" }}
-<div class="mx-auto px-4 py-12 max-w-4xl">
+<div class="mx-auto px-4 py-12 max-w-5xl">
<!-- Page title with taxonomy type -->
<h1 class="text-4xl md:text-5xl font-bold text-accent mb-2">
{{ i18n .Data.Singular }}
</span>
</p>
- <!-- Articles list -->
- <div class="space-y-6 max-w-3xl">
- {{ $pinned := where .Pages "Params.pinned" true }}
- {{ $unpinned := where .Pages "Params.pinned" false }}
-
- <!-- If no unpinned posts found (because param is undefined), get all non-pinned pages -->
+ {{ $pinned := where .Pages "Params.pinned" true }}
+ {{ $unpinned := where .Pages "Params.pinned" false }}
+ {{ if eq (len $unpinned) 0 }}
+ {{ $unpinned = where .Pages "Params.pinned" nil }}
{{ if eq (len $unpinned) 0 }}
- {{ $unpinned = where .Pages "Params.pinned" nil }}
- {{ if eq (len $unpinned) 0 }}
- {{ $unpinned = where .Pages "Params.pinned" "" }}
- {{ end }}
- {{ end }}
-
- <!-- Pinned posts first -->
- {{ range (sort $pinned "Date" "desc") }}
- {{ partial "article-list-item.html" . }}
+ {{ $unpinned = where .Pages "Params.pinned" "" }}
{{ end }}
+ {{ end }}
- <!-- Regular posts -->
- {{ range (sort $unpinned "Date" "desc") }}
- {{ partial "article-list-item.html" . }}
+ {{ if eq (len .Pages) 0 }}
+ <div class="py-12 text-center text-text-dim">
+ {{ i18n "noRelated" }}
+ </div>
+ {{ else }}
+ <ol class="timeline" aria-label="{{ .Title }}">
+ {{ range $i, $page := (sort $pinned "Date" "desc") }}
+ {{ $side := "left" }}
+ {{ if eq (mod $i 2) 0 }}{{ $side = "left" }}{{ else }}{{ $side = "right" }}{{ end }}
+ {{ partial "article-list-item.html" (dict "Page" $page "side" $side) }}
{{ end }}
-
- <!-- Empty state -->
- {{ if eq (len .Pages) 0 }}
- <div class="py-12 text-center text-text-dim">
- {{ i18n "noRelated" }}
- </div>
+ {{ $offset := len $pinned }}
+ {{ range $i, $page := (sort $unpinned "Date" "desc") }}
+ {{ $idx := add $i $offset }}
+ {{ $side := "left" }}
+ {{ if eq (mod $idx 2) 0 }}{{ $side = "left" }}{{ else }}{{ $side = "right" }}{{ end }}
+ {{ partial "article-list-item.html" (dict "Page" $page "side" $side) }}
{{ end }}
- </div>
+ </ol>
+ {{ end }}
</div>
{{ end }}