From 397a83e35c7b7d53b64ded0ea77034a3b2c801a1 Mon Sep 17 00:00:00 2001 From: Kuinox Date: Wed, 9 Oct 2024 11:34:32 +0200 Subject: [PATCH] hotfix for article image 404 --- src/app/blog/[articleName]/page.tsx | 10 ++++++---- src/app/specs/[articleName]/page.tsx | 2 +- src/app/specs/page.tsx | 2 +- src/components/Article.tsx | 12 +++++++++--- src/utils/blog.ts | 7 +++++-- 5 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/app/blog/[articleName]/page.tsx b/src/app/blog/[articleName]/page.tsx index 8545d80..5a9b2b0 100644 --- a/src/app/blog/[articleName]/page.tsx +++ b/src/app/blog/[articleName]/page.tsx @@ -8,11 +8,13 @@ import { Metadata } from "next"; import sharp from "sharp"; import { promises as fs } from "fs"; import ArticleNameParams from "@/utils/ArticleNameParams"; +import path from "path"; export async function generateStaticParams() { const articles = await getBlogArticles(); return articles.map((article) => ({ - articleName: article.path, + // get filename without extension from path + articleName: encodeURIComponent(path.basename(path.dirname(article.path))), })); } @@ -25,7 +27,7 @@ export async function generateMetadata({ params }: ArticleNameParams): Promise article.path === articleName)!; + const article = articles.find((article) => path.basename(path.dirname(article.path)) === articleName)!; if (article.image !== undefined) { const filePath = `./public${article.image}`; const svgBuffer = await fs.readFile(filePath); @@ -57,7 +59,7 @@ export default async function Page({ params }: ArticleNameParams) { } const articles = await getBlogArticles(); - const article = articles.find((article) => article.path === articleName)!; + const article = articles.find((article) => path.basename(path.dirname(article.path)) === articleName)!; articles.sort((a, b) => (a.date > b.date ? -1 : 1)); const articleIndex = articles.indexOf(article); const previousArticle = articles[articleIndex + 1]; @@ -103,7 +105,7 @@ export default async function Page({ params }: ArticleNameParams) { )} -
+
{previousArticle === undefined ? ( diff --git a/src/app/specs/[articleName]/page.tsx b/src/app/specs/[articleName]/page.tsx index 56283e0..f8fb7f9 100644 --- a/src/app/specs/[articleName]/page.tsx +++ b/src/app/specs/[articleName]/page.tsx @@ -15,7 +15,7 @@ export default async function Page({ params }: ArticleNameParams) { const spec = specs.find((spec) => spec.name === articleName)!; return (
-
+