---
import Default from '@astrojs/starlight/components/Head.astro';
const { head, entry } = Astro.locals.starlightRoute;
const basePath = import.meta.env.BASE_URL;
const getMetaContent = (key: string, attribute: 'name' | 'property' = 'name') =>
head.find((tag) => tag.tag === 'meta' && tag.attrs?.[attribute] === key)?.attrs?.content;
const getLinkHref = (rel: string) =>
head.find((tag) => tag.tag === 'link' && tag.attrs?.rel === rel)?.attrs?.href;
const twitterTitle = entry.data.title;
const description =
entry.data.description ??
getMetaContent('description') ??
getMetaContent('og:description', 'property');
const canonicalUrl =
getLinkHref('canonical') ?? getMetaContent('og:url', 'property');
const socialImageUrl =
getMetaContent('twitter:image') ?? getMetaContent('og:image', 'property');
const socialImageAlt =
getMetaContent('twitter:image:alt') ??
getMetaContent('og:image:alt', 'property') ??
description;
const socialImageType = socialImageUrl?.endsWith('.png')
? 'image/png'
: socialImageUrl?.endsWith('.jpg') || socialImageUrl?.endsWith('.jpeg')
? 'image/jpeg'
: socialImageUrl?.endsWith('.webp')
? 'image/webp'
: undefined;
const twitterDomain =
canonicalUrl && URL.canParse(canonicalUrl)
? new URL(canonicalUrl).hostname
: undefined;
---
{twitterTitle && }
{description && }
{canonicalUrl && }
{twitterDomain && }
{socialImageUrl && }
{socialImageType && }
{socialImageAlt && }
{import.meta.env.PROD && (
<>
>
)}