website/_includes/layouts/base.tsx

78 lines
2.1 KiB
TypeScript
Raw Normal View History

2024-03-05 18:38:42 -05:00
export default function (
{ title, description, children, comp, metas, links, author, date },
) {
2023-07-23 16:44:56 -04:00
return (
<html lang="en-CA">
2023-07-23 16:44:56 -04:00
<head>
<title>{title}</title>
2024-03-05 18:38:42 -05:00
<meta charSet="utf-8" />
<meta name="description" content={description} />
<meta name="author" content="Foster Hangdaan" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="color-scheme" content="dark light" />
<meta
name="theme-color"
media="(prefers-color-scheme: dark)"
content="#1a1b26"
/>
<meta
name="theme-color"
media="(prefers-color-scheme: light)"
content="#d5d6db"
/>
{Array.isArray(metas) && metas.length > 0 &&
2024-03-05 18:38:42 -05:00
metas.map((m, index) => (
<meta key={index} name={m.name} content={m.content} />
))}
<link rel="stylesheet" href="/styles/main.css" />
<link
rel="icon"
type="image/png"
href="/icons/tabicon-16.png"
sizes="16x16"
/>
<link
rel="icon"
type="image/png"
href="/icons/tabicon-32.png"
sizes="32x32"
/>
<link
rel="icon"
type="image/png"
href="/icons/tabicon-96.png"
sizes="96x96"
/>
<link
rel="icon"
type="image/png"
href="/icons/tabicon-128.png"
sizes="128x128"
/>
<link
rel="icon"
type="image/png"
href="/icons/tabicon-196.png"
sizes="196x196"
/>
{Array.isArray(links) && links.length > 0 &&
2024-03-05 18:38:42 -05:00
links.map((l, index) => (
<link
key={index}
rel={l.rel}
href={l.href}
type={l.type}
title={l.title}
/>
))}
2023-07-23 16:44:56 -04:00
</head>
<body>
2024-03-05 18:38:42 -05:00
{comp.navbar()}
{comp.header({ title, description, author, date })}
2023-12-03 11:18:36 -05:00
<main className="main-content">{children}</main>
2024-03-05 18:38:42 -05:00
{comp.footer()}
2023-07-23 16:44:56 -04:00
</body>
</html>
);
}