aboutsummaryrefslogtreecommitdiff
path: root/src/pages
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2024-09-12 17:06:44 +0300
committerValentin Popov <valentin@popov.link>2024-09-12 17:06:44 +0300
commit0b57b888caf8817ff4992c59ed40ed29bee34fd4 (patch)
tree37ea0f6c9a50f5be21e5d8e5c5c844fb498c98f4 /src/pages
parent4ba339984d239180a526a5ae8ffbb558f1b5642a (diff)
downloadpopov.link-0b57b888caf8817ff4992c59ed40ed29bee34fd4.tar.xz
popov.link-0b57b888caf8817ff4992c59ed40ed29bee34fd4.zip
Add PostPagination component for blog post navigation
Diffstat (limited to 'src/pages')
-rw-r--r--src/pages/blog/[...slug].astro17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/pages/blog/[...slug].astro b/src/pages/blog/[...slug].astro
index 4ecb1e1..9262a66 100644
--- a/src/pages/blog/[...slug].astro
+++ b/src/pages/blog/[...slug].astro
@@ -2,17 +2,24 @@
import { type CollectionEntry, getCollection } from "astro:content";
import Comments from "../../components/Comments.astro";
import Layout from "../../layouts/PageLayout.astro";
+import Pagination from "../../components/PostPagination.astro";
export async function getStaticPaths() {
const posts = await getCollection("blog");
- return posts.map((post) => ({
+ const total = posts.length;
+
+ return posts.map((post, index) => ({
params: { slug: post.slug },
- props: post,
+ props: {
+ post,
+ prevPost: index + 1 === total ? null : posts[index + 1],
+ nextPost: index === 0 ? null : posts[index - 1],
+ },
}));
}
type Props = CollectionEntry<"blog">;
-const post = Astro.props;
+const { post, prevPost, nextPost } = Astro.props;
const { Content, remarkPluginFrontmatter } = await post.render();
---
@@ -41,6 +48,10 @@ const { Content, remarkPluginFrontmatter } = await post.render();
</section>
<section>
+ <Pagination prevPost={prevPost} nextPost={nextPost} />
+ </section>
+
+ <section>
<Comments />
</section>
</article>