prime8dev

prime8dev
git clone https://git.prime8.dev/prime8dev.git
Log | Files | Refs | README | LICENSE

commit e4b5b9c088f31c5730a9495d6f2f7f956f29111d
parent 131427ce95519b455024b778885668c609924bd1
Author: Damian Myrda <damian@prime8.dev>
Date:   Sat, 31 Jan 2026 18:42:40 -0600

revert(blog): use frontmatter date instead of git/file system dates

Diffstat:
Mwebsite/src/blogs/building-my-portfolio.md | 1+
Mwebsite/src/blogs/index.ts | 26+++++++-------------------
Mwebsite/src/schemas/blog.ts | 1-
3 files changed, 8 insertions(+), 20 deletions(-)

diff --git a/website/src/blogs/building-my-portfolio.md b/website/src/blogs/building-my-portfolio.md @@ -2,6 +2,7 @@ id: building-my-portfolio title: Building a TUI-Inspired Portfolio description: How I built this terminal-style portfolio with Astro +date: 2026-01-16 tags: - Astro - TypeScript diff --git a/website/src/blogs/index.ts b/website/src/blogs/index.ts @@ -1,17 +1,11 @@ -import { statSync } from "node:fs"; -import { resolve, dirname } from "node:path"; -import { fileURLToPath } from "node:url"; import matter from "gray-matter"; import { parseMarkdown, removeFirstH1 } from "../utils/markdown"; -const __dirname = dirname(fileURLToPath(import.meta.url)); - export interface Blog { id: string; title: string; description: string; date: string; - modifiedDate?: string; content?: string; url?: string; image?: string; @@ -24,27 +18,21 @@ const blogModules = import.meta.glob("./*.md", { import: "default", }); -export const blogs = Object.entries(blogModules) - .map(([path, content]) => - parseBlog(resolve(__dirname, path), content as string), - ) +export const blogs = Object.values(blogModules) + .map((content) => parseBlog(content as string)) .sort((a, b) => new Date(b.date).getTime() - new Date(a.date).getTime()); -function formatDate(date: Date): string { - return date.toISOString().split("T")[0]; -} - -function parseBlog(path: string, markdown: string): Blog { - const stats = statSync(path); - +function parseBlog(markdown: string): Blog { const { data, content } = matter(markdown); const blog: Partial<Blog> = { id: data.id as string | undefined, title: data.title as string | undefined, description: data.description as string | undefined, - date: formatDate(stats.birthtime), - modifiedDate: formatDate(stats.mtime), + date: + data.date instanceof Date + ? data.date.toISOString().split("T")[0] + : (data.date as string | undefined), url: data.url as string | undefined, content: parseMarkdown(removeFirstH1(content)), image: data.image as string | undefined, diff --git a/website/src/schemas/blog.ts b/website/src/schemas/blog.ts @@ -9,7 +9,6 @@ export function getSchemaForBlog(blog: Blog) { headline: blog.title, description: blog.description, datePublished: blog.date, - dateModified: blog.modifiedDate || blog.date, url: `${SITE_URL}/blog/${blog.id}`, author: personSchema, publisher: personSchema,