From d89d92d3936683f4212186cef517c7930dd5b33a Mon Sep 17 00:00:00 2001 From: Ashelyn Rose Date: Mon, 8 May 2023 19:25:46 -0600 Subject: add markdown rendering, copy in old posts --- app/posts/[slug]/page.tsx | 28 ++++++++++++++++++++++++++++ app/posts/page.tsx | 21 ++++++++++++++++++--- 2 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 app/posts/[slug]/page.tsx (limited to 'app/posts') diff --git a/app/posts/[slug]/page.tsx b/app/posts/[slug]/page.tsx new file mode 100644 index 0000000..2110a35 --- /dev/null +++ b/app/posts/[slug]/page.tsx @@ -0,0 +1,28 @@ +import { notFound } from 'next/navigation' +import Markdown from 'markdown-to-jsx' + +import InfoBar from '~/components/InfoBar' +import { getPostSlugs, loadSinglePage } from '~/utils/post' + +export async function generateStaticParams() { + const slugs = await getPostSlugs() + return slugs.map((slug: string) => ({ slug })) +} + +export default async function Post({ params: { slug } }) { + const post = await loadSinglePage(slug) + if (!post) notFound() + + return ( + <> +

+ {post.title} +

+
+ + {post.body} +
+ + ) +} + diff --git a/app/posts/page.tsx b/app/posts/page.tsx index 34f0e7f..e713259 100644 --- a/app/posts/page.tsx +++ b/app/posts/page.tsx @@ -1,11 +1,26 @@ -export default function Posts() { +import InfoBar from "~/components/InfoBar" +import { Post, getPostSlugs, loadSinglePage } from "~/utils/post" + +export default async function Posts() { + const slugs = await getPostSlugs() + const posts = await Promise.all(slugs.map(loadSinglePage)) + + const sortedPosts = posts.sort((a: Post, b: Post) => b.date.valueOf() - a.date.valueOf()) + return ( <>

Posts

-
-

This will have posts here eventually we promise

+
+ {sortedPosts.map((post: Post) => ( +
+ +

{post.title}

+

{post.subtitle}

+ Read Post => +
+ ))}
) -- cgit 1.4.1