From c4c55a93bc6af8b15f45225169758e08ff1b13cd Mon Sep 17 00:00:00 2001 From: Andrew Lee Date: Mon, 17 Jul 2023 20:42:50 -0400 Subject: Initial rewrite --- app/updates/[slug]/page.js | 50 ++++++++++++++++++++++++++++++++++++++++++++++ app/updates/page.js | 23 +++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 app/updates/[slug]/page.js create mode 100644 app/updates/page.js (limited to 'app/updates') diff --git a/app/updates/[slug]/page.js b/app/updates/[slug]/page.js new file mode 100644 index 0000000..d91440e --- /dev/null +++ b/app/updates/[slug]/page.js @@ -0,0 +1,50 @@ +import {readFileSync} from "fs"; +import Markdown from "markdown-to-jsx" +import matter from "gray-matter"; +import getPostMetadata from "@/components/updates/getPostMetadata"; +import DateFormatter from "@/components/updates/DateFormatter"; + +const getPostContent = (slug) => { + const folder = "posts/"; + const file = `${folder}${slug}.md`; + const content = readFileSync(file, "utf-8"); + return matter(content); +} + +export function generateMetadata(props) { + const slug = props.params.slug; + const post = getPostContent(slug); + + return { + title: post.data.title, + description: post.data.description + } +} + +export const generateStaticParams = async () => { + const posts = getPostMetadata(); + return posts.map((post) => ({ + slug: post.slug, + })) +} + +export default function PostPage(props) { + const slug = props.params.slug; + const post = getPostContent(slug); + return ( +
+
+
+

{post.data.title}

+ {post.data.author} | {DateFormatter(post.data.date)} +

{post.data.description}

+
+
+
+
+ {post.content} +
+
+
+ ) +} diff --git a/app/updates/page.js b/app/updates/page.js new file mode 100644 index 0000000..ad27f22 --- /dev/null +++ b/app/updates/page.js @@ -0,0 +1,23 @@ +import getPostMetadata from "@/components/updates/getPostMetadata"; +import PostPreview from "@/components/updates/PostPreview"; +import Header from "@/components/Header"; + +export const metadata = { + title: 'Updates', + description: 'Follow the latest updates from the Government of Southeastern Islands', +} + +export default function Updates() { + const postMetadata = getPostMetadata(); + const postPreviews = postMetadata.map((post) => ( + + )); + return ( +
+
+
+
{postPreviews}
+
+
+ ) +} -- cgit v1.2.3