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.
This commit is contained in:
2025-06-11 23:20:36 +00:00
parent 16fa8a3b5d
commit 67f245a48f
22 changed files with 383 additions and 209 deletions
+4 -2
View File
@@ -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>