aboutsummaryrefslogtreecommitdiff
path: root/src/components/Head.astro
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/components/Head.astro
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/components/Head.astro')
-rw-r--r--src/components/Head.astro8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/components/Head.astro b/src/components/Head.astro
index de74ff2..a421915 100644
--- a/src/components/Head.astro
+++ b/src/components/Head.astro
@@ -1,11 +1,15 @@
---
+import type { WithContext, Thing } from "schema-dts";
+import JsonLd from "./JsonLd.astro";
+
type Props = {
readonly description: string;
readonly title: string;
+ readonly schema: WithContext<Thing>;
};
const canonicalURL = new URL(Astro.url.pathname, Astro.site);
-const { description, title } = Astro.props;
+const { description, title, schema } = Astro.props;
---
<head>
@@ -27,4 +31,6 @@ const { description, title } = Astro.props;
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<link rel="manifest" href="/manifest.json" />
<meta name="theme-color" content="#ffffff" />
+
+ <JsonLd schema={schema} />
</head>