34 lines
1.6 KiB
XML
34 lines
1.6 KiB
XML
export default function({ title, description, children, comp, metas, links, author, date }) {
|
|
return (
|
|
<html lang="en-CA">
|
|
<head>
|
|
<title>{title}</title>
|
|
<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 &&
|
|
metas.map(m => <meta 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 &&
|
|
links.map(l => <link rel={l.rel} href={l.href} type={l.type} title={l.title}/>)
|
|
}
|
|
</head>
|
|
<body>
|
|
{ comp.navbar() }
|
|
{ comp.header({title, description, author, date}) }
|
|
<main>{children}</main>
|
|
{ comp.footer() }
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|