From d82fb3b552d20a279efdd9408042183cfa02fb48 Mon Sep 17 00:00:00 2001 From: schererleander Date: Thu, 25 Dec 2025 23:33:25 +0000 Subject: initial commit --- app/blog/[slug]/page.tsx | 35 +++++++++++++++++++++++++++++++++++ app/blog/page.tsx | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 app/blog/[slug]/page.tsx create mode 100644 app/blog/page.tsx (limited to 'app/blog') diff --git a/app/blog/[slug]/page.tsx b/app/blog/[slug]/page.tsx new file mode 100644 index 0000000..a066779 --- /dev/null +++ b/app/blog/[slug]/page.tsx @@ -0,0 +1,35 @@ +// app/blog/[slug]/page.tsx +import { format, parseISO } from 'date-fns' +import { allPosts } from 'contentlayer/generated' +import { MDXContent } from '@/components/mdx-content' + +export const generateStaticParams = async () => allPosts.map((post) => ({ slug: post._raw.flattenedPath })) + +export const generateMetadata = async ({ params }: { params: Promise<{ slug: string }> }) => { + const { slug } = await params + const post = allPosts.find((post) => post._raw.flattenedPath === slug) + if (!post) throw new Error(`Post not found for slug: ${slug}`) + return { title: post.title } +} + +const PostLayout = async ({ params }: { params: Promise<{ slug: string }> }) => { + const { slug } = await params + const post = allPosts.find((post) => post._raw.flattenedPath === slug) + if (!post) throw new Error(`Post not found for slug: ${slug}`) + + return ( +
+
+

{post.title}

+ +
+
+ +
+
+ ) +} + +export default PostLayout diff --git a/app/blog/page.tsx b/app/blog/page.tsx new file mode 100644 index 0000000..abc3394 --- /dev/null +++ b/app/blog/page.tsx @@ -0,0 +1,34 @@ + +import { format, parseISO } from 'date-fns' +import { allPosts } from 'contentlayer/generated' +import Link from 'next/link' + +export default function BlogPage() { + const posts = allPosts.sort((a, b) => compareDesc(new Date(a.date), new Date(b.date))) + + return ( +
+

Blog

+
+ {posts.map((post) => ( +
+

+ + {post.title} + +

+ +
+ ))} +
+
+ ) +} + +function compareDesc(a: Date, b: Date) { + if (a > b) return -1 + if (a < b) return 1 + return 0 +} -- cgit v1.3.1