Add 'exists' flags to content types and set them
This commit is contained in:
@@ -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"],
|
||||||
|
|||||||
@@ -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"],
|
||||||
|
|||||||
@@ -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" />
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
2
astro/src/types/blogs/blog.d.ts
vendored
2
astro/src/types/blogs/blog.d.ts
vendored
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
3
astro/src/types/photos/album.d.ts
vendored
3
astro/src/types/photos/album.d.ts
vendored
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
1
astro/src/types/photos/category.d.ts
vendored
1
astro/src/types/photos/category.d.ts
vendored
@@ -1,3 +1,4 @@
|
|||||||
type PhotoCategoryIndex = {
|
type PhotoCategoryIndex = {
|
||||||
type: "PhotoCategoryIndex";
|
type: "PhotoCategoryIndex";
|
||||||
|
exists: boolean;
|
||||||
}
|
}
|
||||||
|
|||||||
2
astro/src/types/photos/photo.d.ts
vendored
2
astro/src/types/photos/photo.d.ts
vendored
@@ -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;
|
||||||
|
|||||||
4
astro/src/types/projects/project.d.ts
vendored
4
astro/src/types/projects/project.d.ts
vendored
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user