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 = { const blog: BlogPost = {
type: "BlogPost", type: "BlogPost",
exists: true,
id: blogRecord["id"], id: blogRecord["id"],
lastModified: new Date(), lastModified: new Date(),
title: blogRecord["title"], title: blogRecord["title"],

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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