From b5b66d3841cebac5ab34744e63fc60e2a69a7252 Mon Sep 17 00:00:00 2001 From: Andrew Lee Date: Sat, 15 Jul 2023 13:43:54 -0400 Subject: New page; Post system; Fixed more padding --- components/PostPreview.js | 14 ++++++++++++++ components/getPostMetadata.js | 20 ++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 components/PostPreview.js create mode 100644 components/getPostMetadata.js (limited to 'components') diff --git a/components/PostPreview.js b/components/PostPreview.js new file mode 100644 index 0000000..6eca000 --- /dev/null +++ b/components/PostPreview.js @@ -0,0 +1,14 @@ +import Link from "next/link"; + +export default function PostPreview(props) { + return ( +
+ +

{props.title}

+ + By {props.author} +

{props.description}

+

Posted on {props.date}

+
+ ) +} diff --git a/components/getPostMetadata.js b/components/getPostMetadata.js new file mode 100644 index 0000000..88e4566 --- /dev/null +++ b/components/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