summaryrefslogtreecommitdiffstats
path: root/themes/danix-xyz-hacker/layouts/partials/article-nav.html
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-04-18 20:54:50 +0200
committerDanilo M. <danix@danix.xyz>2026-04-18 20:54:50 +0200
commit05f33a6e1059e84c309c5f674e094ed3b1105134 (patch)
treeb18378428ead69deecc636c384f561054d3fec45 /themes/danix-xyz-hacker/layouts/partials/article-nav.html
parent7b645976739619faf514083e5c74bcf187ba93a1 (diff)
downloaddanixxyz-05f33a6e1059e84c309c5f674e094ed3b1105134.tar.gz
danixxyz-05f33a6e1059e84c309c5f674e094ed3b1105134.zip
feat: add prev/next article navigation with shell prompt style
Add top and bottom navigation between sequential articles with hacker aesthetic: - Top nav: [visitor@danix.xyz articles]$ cd - Bottom nav: [visitor@danix.xyz articles]$ ls ../ - Missing link shows dimmed placeholder (beginning/end) - Only renders on articles, not static pages - New partial: article-nav.html - Styling: monospace prompt in accent color, hover links with transition Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Diffstat (limited to 'themes/danix-xyz-hacker/layouts/partials/article-nav.html')
-rw-r--r--themes/danix-xyz-hacker/layouts/partials/article-nav.html46
1 files changed, 46 insertions, 0 deletions
diff --git a/themes/danix-xyz-hacker/layouts/partials/article-nav.html b/themes/danix-xyz-hacker/layouts/partials/article-nav.html
new file mode 100644
index 0000000..d7f8ca3
--- /dev/null
+++ b/themes/danix-xyz-hacker/layouts/partials/article-nav.html
@@ -0,0 +1,46 @@
+{{ $page := .page }}
+{{ $variant := .variant | default "bottom" }}
+{{ $prev := $page.PrevInSection }}
+{{ $next := $page.NextInSection }}
+
+{{/* Shell prompt command varies by position */}}
+{{ $cmd := "ls ../" }}
+{{ if eq $variant "top" }}
+ {{ $cmd = "cd" }}
+{{ end }}
+
+<nav class="article-nav {{ if eq $variant "bottom" }}mt-8{{ else }}mb-8{{ end }}"
+ aria-label="Article navigation">
+ <p class="article-nav-prompt" aria-hidden="true">
+ [visitor@danix.xyz articles]$ {{ $cmd }}
+ </p>
+ <div class="article-nav-links">
+ {{/* ---- Previous (left side) ---- */}}
+ {{ if $prev }}
+ <a href="{{ $prev.Permalink }}"
+ class="article-nav-link truncate max-w-[45%]"
+ rel="prev"
+ title="{{ $prev.Title }}">
+ ◄ {{ $prev.Title }}
+ </a>
+ {{ else }}
+ <span class="article-nav-placeholder" aria-label="Beginning of articles">
+ ◄ (beginning)
+ </span>
+ {{ end }}
+
+ {{/* ---- Next (right side) ---- */}}
+ {{ if $next }}
+ <a href="{{ $next.Permalink }}"
+ class="article-nav-link truncate max-w-[45%] text-right"
+ rel="next"
+ title="{{ $next.Title }}">
+ {{ $next.Title }} ►
+ </a>
+ {{ else }}
+ <span class="article-nav-placeholder text-right" aria-label="End of articles">
+ (end) ►
+ </span>
+ {{ end }}
+ </div>
+</nav>