From d53df4b898aaf467b2db721172408f84e6e8b3af Mon Sep 17 00:00:00 2001
From: itsfinniii <102350242+itsfinniii@users.noreply.github.com>
Date: Fri, 20 Mar 2026 18:06:29 +0100
Subject: [PATCH] Add Blog and Project layouts with SEO metadata
---
astro/src/layouts/BlogLayout.astro | 73 ++++++++++++++++++++++
astro/src/layouts/ProjectLayout.astro | 73 ++++++++++++++++++++++
astro/src/types/layouts/webpageLayout.d.ts | 5 ++
3 files changed, 151 insertions(+)
create mode 100644 astro/src/layouts/BlogLayout.astro
create mode 100644 astro/src/layouts/ProjectLayout.astro
diff --git a/astro/src/layouts/BlogLayout.astro b/astro/src/layouts/BlogLayout.astro
new file mode 100644
index 0000000..5ca4adb
--- /dev/null
+++ b/astro/src/layouts/BlogLayout.astro
@@ -0,0 +1,73 @@
+---
+import '@/styles/global.css';
+import { getSettings } from "@/content/settings/settings";
+
+interface Props {
+ settings: BlogLayoutProps;
+}
+
+const pageSettings = Astro.props.settings.searchEngine;
+const settings = await getSettings();
+---
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {settings.website.titleTemplate.replaceAll("%T", pageSettings.title)}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/astro/src/layouts/ProjectLayout.astro b/astro/src/layouts/ProjectLayout.astro
new file mode 100644
index 0000000..5ca4adb
--- /dev/null
+++ b/astro/src/layouts/ProjectLayout.astro
@@ -0,0 +1,73 @@
+---
+import '@/styles/global.css';
+import { getSettings } from "@/content/settings/settings";
+
+interface Props {
+ settings: BlogLayoutProps;
+}
+
+const pageSettings = Astro.props.settings.searchEngine;
+const settings = await getSettings();
+---
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {settings.website.titleTemplate.replaceAll("%T", pageSettings.title)}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/astro/src/types/layouts/webpageLayout.d.ts b/astro/src/types/layouts/webpageLayout.d.ts
index 1b562c4..e75cca0 100644
--- a/astro/src/types/layouts/webpageLayout.d.ts
+++ b/astro/src/types/layouts/webpageLayout.d.ts
@@ -1,3 +1,8 @@
type WebpageLayoutProps = {
searchEngine: SearchEngine;
}
+
+type BlogLayoutProps = {
+ searchEngine: SearchEngine;
+ tags: string[] | null;
+}