From d57226e5a802ecd6607faf67f32621e2da725a35 Mon Sep 17 00:00:00 2001 From: Andrew Lee Date: Wed, 19 Jul 2023 00:48:11 -0400 Subject: Moved all components to app folder --- app/updates/DateFormatter.js | 9 +++++++++ app/updates/PostPreview.js | 15 +++++++++++++++ app/updates/[slug]/page.js | 4 ++-- app/updates/getPostMetadata.js | 24 ++++++++++++++++++++++++ app/updates/page.js | 6 +++--- 5 files changed, 53 insertions(+), 5 deletions(-) create mode 100644 app/updates/DateFormatter.js create mode 100644 app/updates/PostPreview.js create mode 100644 app/updates/getPostMetadata.js (limited to 'app/updates') diff --git a/app/updates/DateFormatter.js b/app/updates/DateFormatter.js new file mode 100644 index 0000000..9e236d0 --- /dev/null +++ b/app/updates/DateFormatter.js @@ -0,0 +1,9 @@ + +import { parseISO, format } from 'date-fns' + +const DateFormatter = (dateString) => { + const date = parseISO(dateString) + return +} + +export default DateFormatter diff --git a/app/updates/PostPreview.js b/app/updates/PostPreview.js new file mode 100644 index 0000000..23e2176 --- /dev/null +++ b/app/updates/PostPreview.js @@ -0,0 +1,15 @@ +import Link from "next/link"; +import DateFormatter from '@/app/updates/DateFormatter' + +export default function PostPreview(props) { + return ( +
+ +

{props.title}

+ + {props.author} +

{props.description}

+

Posted on {DateFormatter(props.date)}

+
+ ) +} diff --git a/app/updates/[slug]/page.js b/app/updates/[slug]/page.js index d91440e..102a98a 100644 --- a/app/updates/[slug]/page.js +++ b/app/updates/[slug]/page.js @@ -1,8 +1,8 @@ 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"; +import getPostMetadata from "@/app/updates/getPostMetadata"; +import DateFormatter from "@/app/updates/DateFormatter"; const getPostContent = (slug) => { const folder = "posts/"; diff --git a/app/updates/getPostMetadata.js b/app/updates/getPostMetadata.js new file mode 100644 index 0000000..515cc79 --- /dev/null +++ b/app/updates/getPostMetadata.js @@ -0,0 +1,24 @@ +import {readdirSync, readFileSync} from "fs"; +import matter from "gray-matter"; + +export default function getPostMetadata() { + const folder = "posts/"; + const files = readdirSync(folder); + const markdownPosts = files.filter((file) => file.endsWith(".md")); + + const posts = markdownPosts.map((fileName) => { + const fileContent = readFileSync(`posts/${fileName}`, "utf-8"); + const matterResult = matter(fileContent); + return { + title: matterResult.data.title, + author: matterResult.data.author, + date: matterResult.data.date, + description: matterResult.data.description, + slug: fileName.replace(".md", "") + } + }) + + // Sort the posts by date in descending order + posts.sort((a, b) => new Date(b.date) - new Date(a.date)); + return posts +} diff --git a/app/updates/page.js b/app/updates/page.js index 04215c9..148c135 100644 --- a/app/updates/page.js +++ b/app/updates/page.js @@ -1,6 +1,6 @@ -import getPostMetadata from "@/components/updates/getPostMetadata"; -import PostPreview from "@/components/updates/PostPreview"; -import Header from "@/components/Header"; +import getPostMetadata from "@/app/updates/getPostMetadata"; +import PostPreview from "@/app/updates/PostPreview"; +import Header from "@/app/Header"; export const metadata = { title: 'Updates', -- cgit v1.2.3