--- 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 && ( <> )}