Add 'exists' flags to content types and set them

This commit is contained in:
itsfinniii
2026-03-20 16:55:33 +01:00
parent 4bb3fa3671
commit b6f3fdd15e
10 changed files with 36 additions and 9 deletions

View File

@@ -94,6 +94,7 @@ export async function getBlog(settings: GlobalSettings, route: string): Promise<
const blog: BlogPost = {
type: "BlogPost",
exists: true,
id: blogRecord["id"],
lastModified: new Date(),
title: blogRecord["title"],

View File

@@ -24,6 +24,9 @@ export async function getAllProjects(settings: GlobalSettings): Promise<ProjectP
];
const project: ProjectPost = {
type: "ProjectPost",
exists: true,
lastModified: new Date(),
title: projectRecord["title"],
content: projectRecord["content"],
@@ -91,6 +94,9 @@ export async function getProject(settings: GlobalSettings, route: string): Promi
];
const project: ProjectPost = {
type: "ProjectPost",
exists: true,
lastModified: new Date(),
title: projectRecord["title"],
content: projectRecord["content"],

View File

@@ -60,6 +60,8 @@ const settings = await getSettings();
<meta name="owner" content={settings.website.owner} />
<meta name="developer" content={settings.website.developer} />
<meta name="application-name" content={settings.website.applicationName} />
<!-- Scripts and Style -->
</head>
<body>
<slot name="content" />

View File

@@ -22,6 +22,7 @@ export async function getPage(settings: GlobalSettings, route: string): Promise<
pageType: "BlogIndex",
page: {
type: "BlogIndex",
exists: true,
pageNumber: params["page"] !== undefined ? Number(params["page"]) : 1
}
};
@@ -63,6 +64,7 @@ export async function getPage(settings: GlobalSettings, route: string): Promise<
pageType: "ProjectIndex",
page: {
type: "ProjectIndex",
exists: true,
pageNumber: params["page"] !== undefined ? Number(params["page"]) : 1
}
};
@@ -93,7 +95,8 @@ export async function getPage(settings: GlobalSettings, route: string): Promise<
route: route,
pageType: "PhotoCategoryIndex",
page: {
type: "PhotoCategoryIndex"
type: "PhotoCategoryIndex",
exists: true
}
};
}
@@ -114,6 +117,7 @@ export async function getPage(settings: GlobalSettings, route: string): Promise<
pageType: "PhotoCategory",
page: {
type: "PhotoCategory",
exists: true,
category: params["category"],
pageNumber: params["page"] !== undefined ? Number(params["page"]) : 1
}
@@ -160,6 +164,8 @@ export async function getPage(settings: GlobalSettings, route: string): Promise<
pageType: "Photo",
page: {
type: "PhotoPage",
exists: true,
id: photo!.id,
photo: photo!.photo,
text: photo!.text

View File

@@ -22,7 +22,7 @@ export async function getStaticPaths() {
const settings = await getSettings();
const page = await getPage(settings, Astro.url.pathname);
if (page === null) {
if (page === null || page.page === null) {
return new Response("Page not found.", {
status: 404,
statusText: "Not Found"
@@ -30,16 +30,16 @@ if (page === null) {
}
---
{ page.pageType === "Webpage" && (
{ page.page.type === "Webpage" && page.page.exists && (
<WebpageLayout settings={{
searchEngine: {
title: "",
description: "",
allowCrawlers: true,
canonical: null,
priority: 65,
title: page.page.searchEngine.title,
description: page.page.searchEngine.description,
allowCrawlers: page.page.searchEngine.allowCrawlers,
canonical: page.page.searchEngine.canonical,
priority: page.page.searchEngine.priority,
thumbnail: {
url: "",
url: page.page.searchEngine.thumbnail.url,
width: 1200,
height: 630
}

View File

@@ -1,5 +1,6 @@
type BlogPost = {
type: "BlogPost";
exists: boolean;
id: string;
title: string;
@@ -16,5 +17,6 @@ type BlogPost = {
type BlogIndex = {
type: "BlogIndex";
exists: boolean;
pageNumber: number;
}

View File

@@ -1,5 +1,6 @@
type PhotoAlbum = {
type: "PhotoAlbum";
exists: boolean;
title: string;
url: string;
@@ -32,6 +33,8 @@ type PhotoAlbumPhoto = {
type PhotoCategory = {
type: "PhotoCategory";
exists: boolean;
category: string;
pageNumber: number;
}

View File

@@ -1,3 +1,4 @@
type PhotoCategoryIndex = {
type: "PhotoCategoryIndex";
exists: boolean;
}

View File

@@ -1,5 +1,7 @@
type PhotoPage = {
type: "PhotoPage";
exists: boolean;
id: string;
photo: PhotoProps;
text: string | null;

View File

@@ -1,4 +1,7 @@
type ProjectPost = {
type: "ProjectPost";
exists: boolean;
title: string;
url: string;
date: string;
@@ -13,5 +16,6 @@ type ProjectPost = {
type ProjectIndex = {
type: "ProjectIndex";
exists: boolean;
pageNumber: number;
}