From ddbe4fa61425f6a871a23238ce15a0929e201e6e Mon Sep 17 00:00:00 2001 From: Andrew Lee Date: Mon, 17 Jul 2023 15:08:57 -0400 Subject: Modularizing certain elements; Working information section --- components/updates/DateFormatter.js | 9 +++++++++ components/updates/PostPreview.js | 15 +++++++++++++++ components/updates/getPostMetadata.js | 20 ++++++++++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 components/updates/DateFormatter.js create mode 100644 components/updates/PostPreview.js create mode 100644 components/updates/getPostMetadata.js (limited to 'components/updates') diff --git a/components/updates/DateFormatter.js b/components/updates/DateFormatter.js new file mode 100644 index 0000000..11f3bf3 --- /dev/null +++ b/components/updates/DateFormatter.js @@ -0,0 +1,9 @@ + +import { parseISO, format } from 'date-fns' + +const DateFormatter = (dateString) => { + const date = parseISO(dateString) + return +} + +export default DateFormatter \ No newline at end of file diff --git a/components/updates/PostPreview.js b/components/updates/PostPreview.js new file mode 100644 index 0000000..ca261c0 --- /dev/null +++ b/components/updates/PostPreview.js @@ -0,0 +1,15 @@ +import Link from "next/link"; +import DateFormatter from '@/components/updates/DateFormatter' + +export default function PostPreview(props) { + return ( +
+ +

{props.title}

+ + By {props.author} +

{props.description}

+

Posted on {DateFormatter(props.date)}

+
+ ) +} diff --git a/components/updates/getPostMetadata.js b/components/updates/getPostMetadata.js new file mode 100644 index 0000000..88e4566 --- /dev/null +++ b/components/updates/getPostMetadata.js @@ -0,0 +1,20 @@ +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")); + + return 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", "") + } + }) +} -- cgit v1.2.3