Skip to content
This repository was archived by the owner on Apr 13, 2026. It is now read-only.

Commit 9809797

Browse files
authored
fix: resolve multiple bugs across pages and helpers (#114)
1 parent c980f4c commit 9809797

10 files changed

Lines changed: 21 additions & 21 deletions

File tree

src/app/[article]/[year]/[slug]/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ export default async function ArticlePage({ params }: PageProps) {
4646
const articleYear = article.year;
4747

4848
if (articleYear !== year) {
49-
redirect(`/articles/${articleYear}/${article.slug}`);
49+
redirect(URLS.ARTICLES(articleYear, article.slug));
5050
}
5151

5252
return (

src/app/[article]/category/[category]/page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@ export default async function CategoryArticlePage({ params }: PageProps) {
7676
{category} {articleLabel}
7777
</h3>
7878
<div className="list-container">
79-
{filteredArticles.map((article, index) => (
80-
<ArticleSummaryCard key={index} article={article} />
79+
{filteredArticles.map((article) => (
80+
<ArticleSummaryCard key={article.slug} article={article} />
8181
))}
8282
</div>
8383
</div>

src/app/[article]/tag/[tag]/page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@ export default async function TagArticlePage({ params }: PageProps) {
7676
</h3>
7777
</div>
7878
<div className="list-container">
79-
{filteredArticles.map((article, index) => (
80-
<ArticleSummaryCard key={index} article={article} />
79+
{filteredArticles.map((article) => (
80+
<ArticleSummaryCard key={article.slug} article={article} />
8181
))}
8282
</div>
8383
</div>

src/app/education/page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ export default function EducationPage() {
4040
</Breadcrumb>
4141
<h3>Education</h3>
4242
<div className="grid grid-cols-1 gap-8">
43-
{education.map((edu, index) => (
44-
<EducationSummaryCard key={index} education={edu} />
43+
{education.map((edu) => (
44+
<EducationSummaryCard key={edu.slug} education={edu} />
4545
))}
4646
</div>
4747
</div>

src/app/projects/[slug]/page.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,9 @@ export default async function ProjectPage({ params }: PageProps) {
6767
subtitle={project.description}
6868
/>
6969
<div className="flex flex-wrap gap-2">
70-
{project.stack.map((tag, index) => (
70+
{project.stack.map((tag) => (
7171
<TagButton
72-
key={index}
72+
key={tag}
7373
tag={tag}
7474
source="projects"
7575
asLink
@@ -137,7 +137,7 @@ export async function generateMetadata({
137137
title: `${project.title}`,
138138
description: project.description,
139139
url: URLS.PROJECTS(project.slug),
140-
image: project.ogImage,
140+
image: project.ogImage || project.image,
141141
});
142142

143143
return metadata;

src/app/projects/page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ export default function ProjectsPage() {
4141
</Breadcrumb>
4242
<h3>Projects</h3>
4343
<div className="grid grid-cols-1 md:grid-cols-2 gap-8">
44-
{projects.map((project, index) => (
45-
<ProjectSummaryCard key={index} project={project} />
44+
{projects.map((project) => (
45+
<ProjectSummaryCard key={project.slug} project={project} />
4646
))}
4747
</div>
4848
</div>

src/app/projects/stack/[tag]/page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,8 @@ export default async function TagProjectsPage({ params }: PageProps) {
9191
<h3>{tag} projects</h3>
9292
</div>
9393
<div className="grid grid-cols-1 md:grid-cols-2 gap-8">
94-
{filteredProjects.map((project, index) => (
95-
<ProjectSummaryCard key={index} project={project} />
94+
{filteredProjects.map((project) => (
95+
<ProjectSummaryCard key={project.slug} project={project} />
9696
))}
9797
</div>
9898
</div>

src/app/work/page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ export default function WorkPage() {
4141
</Breadcrumb>
4242
<h3>Work Experience</h3>
4343
<div className="grid grid-cols-1 gap-8">
44-
{work.map((experience, index) => (
45-
<WorkSummaryCard key={index} experience={experience} />
44+
{work.map((experience) => (
45+
<WorkSummaryCard key={experience.slug} experience={experience} />
4646
))}
4747
</div>
4848
</div>

src/components/helpers/structured-data.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ export function generateArticleSchema(article: Article) {
7777
url: configData.seo.image,
7878
},
7979
},
80-
url: URLS.ARTICLES(year, article.slug),
80+
url: `${BASE_URL}${URLS.ARTICLES(year, article.slug)}`,
8181
wordCount: article.content?.split(" ").length || 0,
8282
timeRequired: `PT${Math.max(1, Math.ceil((article.content?.split(" ").length || 0) / 200))}M`,
8383
keywords: article.tags.join(", "),
@@ -113,7 +113,7 @@ export function generateCommunitySchema(
113113
name: PROFILE_NAME,
114114
url: BASE_URL,
115115
},
116-
url: URLS.COMMUNITY(year, community.slug),
116+
url: `${BASE_URL}${URLS.COMMUNITY(year, community.slug)}`,
117117
eventStatus: "https://schema.org/EventScheduled",
118118
eventAttendanceMode: "https://schema.org/OfflineEventAttendanceMode",
119119
about: community.description,
@@ -149,7 +149,7 @@ export function generateProjectSchema(project: Project) {
149149
"@type": "SoftwareApplication",
150150
name: project.title,
151151
description: project.description,
152-
url: project.url || URLS.PROJECTS(project.slug),
152+
url: project.url || `${BASE_URL}${URLS.PROJECTS(project.slug)}`,
153153
image: project.image,
154154
author: {
155155
"@type": "Person",

src/components/helpers/work.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ export function getWorkBySlugRaw(
172172
if (!match) return null;
173173

174174
const raw = fs.readFileSync(match, "utf-8");
175-
const { data } = matter(raw);
175+
const { data, content } = matter(raw);
176176
const parsed = WorkExperienceSchema.safeParse(data);
177177

178178
if (!parsed.success) return null;
@@ -193,7 +193,7 @@ export function getWorkBySlugRaw(
193193
}),
194194
};
195195

196-
return { meta, raw };
196+
return { meta, raw: content };
197197
}
198198

199199
export function getWorkBySlugContent(

0 commit comments

Comments
 (0)