From 5d5802c00d1d2e8809d8a5ea91f3e19878fcf71f Mon Sep 17 00:00:00 2001 From: Raphael Pour Date: Fri, 5 Jul 2024 11:32:44 +0200 Subject: [PATCH] post: add first/last post navigation links --- CHANGELOG.md | 1 + cmd/post.tmpl | 6 ++++++ cmd/render.go | 13 +++++++++++-- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e152847..bff71da 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ * metadata: render posts with date instead of full timestamp * post: add discussion board via github using giscus * dependency: update go to 1.22.4 + * post: add first/last post navigation links *Not released yet* diff --git a/cmd/post.tmpl b/cmd/post.tmpl index a90bacf..266748e 100644 --- a/cmd/post.tmpl +++ b/cmd/post.tmpl @@ -75,6 +75,9 @@
+ {{if .FirstPostLink}} + << + {{end}} {{if .PreviousPostLink}} < {{end}} @@ -82,6 +85,9 @@ {{if .NextPostLink}} > {{end}} + {{if .LastPostLink}} + >> + {{end}}
{{.CreatedAt}} diff --git a/cmd/render.go b/cmd/render.go index 51346c5..f7f6d4d 100644 --- a/cmd/render.go +++ b/cmd/render.go @@ -53,6 +53,8 @@ type Post struct { Title string Link string PermaLink string + FirstPostLink string + LastPostLink string PreviousPostLink string NextPostLink string HomeLink string @@ -190,11 +192,18 @@ var renderCmd = &cobra.Command{ continue } + if i != 0 { + posts[i].FirstPostLink = posts[0].Link + } + + if i != len(posts)-1 { + // can't be -1 as loop would've been skipped if so + posts[i].LastPostLink = posts[len(posts)-1].Link + } + if nextPost >= 0 { posts[i].NextPostLink = posts[nextPost].Link posts[nextPost].PreviousPostLink = posts[i].Link - - fmt.Println(posts[i].Title, "<->", posts[nextPost].Title) } nextPost = i }