Files
blog2025/src/components/layout/BaseHead.astro
2025-07-18 16:43:10 +02:00

59 lines
1.9 KiB
Plaintext

---
// Import the global.css file here so that it is included on
// all pages through the use of the <BaseHead /> component.
import { themeConfig } from '@/config'
import type { BaseHeadProps } from '@/types/component.types'
import 'katex/dist/katex.min.css'
const canonicalURL = new URL(Astro.url.pathname, Astro.site)
const { title, description, ogImage } = Astro.props as BaseHeadProps
const imageUrl = ogImage ? new URL(ogImage, Astro.url) : new URL('/og/chiri-og.png', Astro.url)
---
<!-- Global Metadata -->
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<link rel="preload" href="/fonts/Inter.woff2" as="font" type="font/woff2" crossorigin="anonymous" />
<link
rel="preload"
href="/fonts/Besley-Italic.woff2"
as="font"
type="font/woff2"
crossorigin="anonymous"
/>
<link rel="sitemap" href="/sitemap-index.xml" />
<link
rel="alternate"
type="application/rss+xml"
title={themeConfig.site.title}
href={new URL('rss.xml', Astro.site)}
/>
<meta name="generator" content={Astro.generator} />
<!-- Canonical URL -->
<link rel="canonical" href={canonicalURL} />
<!-- Primary Meta Tags -->
<title>
{title || themeConfig.site.title}
</title>
<meta name="title" content={title} />
<meta name="description" content={description} />
<!-- Open Graph / Facebook -->
<meta property="og:type" content="website" />
<meta property="og:url" content={Astro.url} />
<meta property="og:title" content={title} />
<meta property="og:description" content={description} />
<meta property="og:image" content={imageUrl} />
<!-- Twitter -->
<meta property="twitter:card" content="summary_large_image" />
<meta property="twitter:url" content={Astro.url} />
<meta property="twitter:title" content={title} />
<meta property="twitter:description" content={description} />
<meta property="twitter:image" content={imageUrl} />