From 581826a5affd03d12416a5ac7d28ed17d53eac8d Mon Sep 17 00:00:00 2001 From: Sat Naing Date: Fri, 29 Dec 2023 10:26:02 +0630 Subject: [PATCH] feat: add pagination in tag posts (#201) * feat: add pagination in tag posts Implement pagination in tag posts. Refactor and extract pagination logic and pagination component. Closes: #152 * fix: update breadcrumbs for updated tag pagination --- src/components/Breadcrumbs.astro | 12 ++++++ src/components/Pagination.astro | 57 ++++++++++++++++++++++++++ src/layouts/Posts.astro | 64 +++++++----------------------- src/layouts/TagPosts.astro | 49 +++++++++++++++++++++++ src/pages/posts/[slug]/index.astro | 28 +++---------- src/pages/posts/index.astro | 16 ++++---- src/pages/tags/[tag].astro | 58 --------------------------- src/pages/tags/[tag]/[page].astro | 44 ++++++++++++++++++++ src/pages/tags/[tag]/index.astro | 32 +++++++++++++++ src/utils/getPagination.ts | 35 ++++++++++++++++ src/utils/getPostsByTag.ts | 7 +++- 11 files changed, 262 insertions(+), 140 deletions(-) create mode 100644 src/components/Pagination.astro create mode 100644 src/layouts/TagPosts.astro delete mode 100644 src/pages/tags/[tag].astro create mode 100644 src/pages/tags/[tag]/[page].astro create mode 100644 src/pages/tags/[tag]/index.astro create mode 100644 src/utils/getPagination.ts diff --git a/src/components/Breadcrumbs.astro b/src/components/Breadcrumbs.astro index dfe9904..2938f79 100644 --- a/src/components/Breadcrumbs.astro +++ b/src/components/Breadcrumbs.astro @@ -10,6 +10,18 @@ const breadcrumbList = currentUrlPath.split("/").slice(1); // replace Posts with Posts (page number) breadcrumbList[0] === "posts" && breadcrumbList.splice(0, 2, `Posts (page ${breadcrumbList[1] || 1})`); + +// if breadcrumb is Home > Tags > [tag] > [page] +// replace [tag] > [page] with [tag] (page number) +breadcrumbList[0] === "tags" && + !isNaN(Number(breadcrumbList[2])) && + breadcrumbList.splice( + 1, + 3, + `${breadcrumbList[1]} ${ + Number(breadcrumbList[2]) === 1 ? "" : "(page " + breadcrumbList[2] + ")" + }` + ); ---