website/www/src/layouts/Layout.astro

47 lines
1.3 KiB
Text

---
import '../styles/global.css';
interface Props {
title: string;
description?: string;
showHeader?: boolean;
isHome?: boolean;
urls?: string[];
}
const { title, description = 'personal website of ' + title, showHeader = true, isHome = false, urls = [] } = Astro.props;
---
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{title}</title>
<meta name="description" content={description} />
<meta property="og:title" content={title} />
<meta property="og:description" content={description} />
<meta property="og:type" content="website" />
<link rel="alternate" type="application/rss+xml" title="wynne.rs" href="/feed.xml" />
{urls.length > 0 && <script is:inline define:vars={{ urls }}>window.__urls = urls;</script>}
<script is:inline src="/js/params.js"></script>
</head>
<body>
{showHeader && (
<header>
<span class="header-name">
<a href="/">{isHome ? title : 'lewis m.w.'}</a>
</span>
<span class="header-links">
<a href="mailto:lewis@wynne.rs">mail</a>
<a href="https://github.com/llywelwyn">gh</a>
<a href="/feed.xml">rss</a>
<a href="/sitemap.txt">sitemap</a>
<a href="/?do=random">random</a>
<a href="/?do=newest">newest</a>
<a id="find" href="/?has=">find</a>
</span>
</header>
)}
<slot />
</body>
</html>