aboutsummaryrefslogtreecommitdiff
path: root/src/layouts
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2025-06-12 02:20:36 +0300
committerValentin Popov <valentin@popov.link>2025-06-12 02:20:36 +0300
commit67f245a48faf6e89989aca2ea571b657fd4c8888 (patch)
tree110c7f4f842d30ef1c79d916d40e143d30adec5a /src/layouts
parent16fa8a3b5de7dd7c4fa763fecbba0063f6b4369b (diff)
downloadpopov.link-67f245a48faf6e89989aca2ea571b657fd4c8888.tar.xz
popov.link-67f245a48faf6e89989aca2ea571b657fd4c8888.zip
feat: integrate schema.org support and enhance component structure
- Added schema.org support by introducing `schema-dts` for structured data in components. - Updated `Head`, `BaseLayout`, and various page components to accept and utilize schema props for better SEO. - Created new utility schemas for blog posts and website to standardize structured data implementation. - Enhanced the `SocialLinks` section by utilizing dedicated icon components for improved maintainability. - Refactored the `Header` component to improve accessibility and structure. - Introduced new icons for social links and integrated them into the layout.
Diffstat (limited to 'src/layouts')
-rw-r--r--src/layouts/BaseLayout.astro6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/layouts/BaseLayout.astro b/src/layouts/BaseLayout.astro
index f33ca69..216287e 100644
--- a/src/layouts/BaseLayout.astro
+++ b/src/layouts/BaseLayout.astro
@@ -1,4 +1,5 @@
---
+import type { WithContext, Thing } from "schema-dts";
import Analytics from "../components/Analytics.astro";
import Head from "../components/Head.astro";
import Header from "../components/Header.astro";
@@ -8,13 +9,14 @@ type Props = {
readonly description: string;
readonly title: string;
readonly lang: string;
+ readonly schema: WithContext<Thing>;
};
-const { title, description, lang } = Astro.props;
+const { title, description, lang, schema } = Astro.props;
---
<html lang={lang}>
- <Head title={title} description={description} />
+ <Head title={title} description={description} schema={schema} />
<body>
<main>