45 lines
1.3 KiB
Plaintext
45 lines
1.3 KiB
Plaintext
---
|
|
import Footer from "@/components/Footer.astro"
|
|
import Header from "@/components/header/Header.astro"
|
|
import Breadcrumb from "@/components/Breadcrumb.astro"
|
|
import { getLocale } from "@/paraglide/runtime"
|
|
|
|
interface Props {
|
|
title: string
|
|
description?: string
|
|
keywords?: ReadonlyArray<string>
|
|
class?: string
|
|
}
|
|
const { title, description, keywords, class: clazz } = Astro.props
|
|
const mainClass =
|
|
"grow max-w-[1000px] m-auto sm:min-w-[500px] not-sm:w-full px-5"
|
|
---
|
|
|
|
<!doctype html>
|
|
<html lang={getLocale()} dir={"ltr"}>
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="author" content="Martin Berg Alstad" />
|
|
<meta name="viewport" content="width=device-width" />
|
|
<meta name="generator" content={Astro.generator} />
|
|
{description && <meta name="description" content={description} />}
|
|
{keywords && <meta name="keywords" content={keywords.join(", ")} />}
|
|
<link rel="sitemap" href="/sitemap-index.xml" />
|
|
<link rel="icon" type="image/jpg" href="/favicon.jpg" />
|
|
<title>{title} | Martin Berg Alstad</title>
|
|
</head>
|
|
|
|
<body class="flex flex-col min-h-screen bg-cat-base text-cat-text">
|
|
<Header />
|
|
<main class:list={[mainClass, clazz]}>
|
|
<h1 class="text-center not-sm:hidden">
|
|
<Breadcrumb />
|
|
</h1>
|
|
<div class="my-5">
|
|
<slot />
|
|
</div>
|
|
</main>
|
|
<Footer />
|
|
</body>
|
|
</html>
|