2026-03-25 15:26:22 +00:00
|
|
|
---
|
|
|
|
|
interface Props {
|
|
|
|
|
title: string;
|
|
|
|
|
description: string;
|
|
|
|
|
image?: string;
|
|
|
|
|
canonical?: string;
|
|
|
|
|
type?: "website" | "article";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const {
|
|
|
|
|
title,
|
|
|
|
|
description,
|
2026-03-25 23:32:45 +00:00
|
|
|
image = "/images/marisa.png",
|
2026-03-25 15:26:22 +00:00
|
|
|
canonical,
|
|
|
|
|
type = "website",
|
|
|
|
|
} = Astro.props;
|
|
|
|
|
|
|
|
|
|
const url = new URL(Astro.url.pathname, Astro.site);
|
|
|
|
|
const canonicalUrl = canonical ?? url.toString();
|
|
|
|
|
const imageUrl = new URL(image, Astro.site).toString();
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
<title>{title}</title>
|
|
|
|
|
<meta name="description" content={description} />
|
|
|
|
|
<link rel="canonical" href={canonicalUrl} />
|
|
|
|
|
|
|
|
|
|
<meta property="og:title" content={title} />
|
|
|
|
|
<meta property="og:description" content={description} />
|
|
|
|
|
<meta property="og:type" content={type} />
|
|
|
|
|
<meta property="og:url" content={canonicalUrl} />
|
|
|
|
|
<meta property="og:image" content={imageUrl} />
|
|
|
|
|
|
|
|
|
|
<meta name="twitter:card" content="summary_large_image" />
|
|
|
|
|
<meta name="twitter:title" content={title} />
|
|
|
|
|
<meta name="twitter:description" content={description} />
|
|
|
|
|
<meta name="twitter:image" content={imageUrl} />
|