Files
website/astro/src/layouts/ProjectLayout.astro
itsfinniii d9430335d5 Clean up the project a bit
Fix imports, remove unnecessary imports, and replace all single apostrophe to double apostrophes
2026-04-27 21:15:32 +02:00

87 lines
3.9 KiB
Plaintext

---
import "@/styles/global.css";
import { getSettings } from "@/content/settings/settings";
import { getTextColor } from "@/lib/colors";
import Footer from "@/components/footer/Footer.astro";
interface Props {
settings: BlogLayoutProps;
}
const pageSettings = Astro.props.settings.searchEngine;
const settings = await getSettings();
const css = {
"--ptc": settings.website.colors.primary,
"--stc": settings.website.colors.secondary ?? settings.website.colors.primary,
"--ptt": getTextColor(settings.website.colors.primary),
"--stt": settings.website.colors.secondary
? getTextColor(settings.website.colors.secondary)
: getTextColor(settings.website.colors.primary)
};
---
<!DOCTYPE html>
<html>
<head>
<!-- High Priority Metadata -->
<meta charset="utf-8" />
<meta name="lanuage" content="en" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width" />
<meta name="theme-color" content={settings.website.colors.primary} />
<!-- High Priority Page Metadata -->
<title>{settings.website.titleTemplate.replaceAll("%T", pageSettings.title)}</title>
<!-- Medium Priority Metadata -->
<meta name="msapplication-TileColor" content={settings.website.colors.primary} />
<meta name="msapplication-TileImage" content="" />
<link rel="sitemap" href="/sitemap/index.xml" />
<link rel="alternate" type="application/rss+xml" href="/rss.xml" title="RSS" />
<link rel="canonical" href={`${settings.website.domainName}/`} />
<meta name="robots" content="index,follow" />
<meta name="keywords" content={[].join(",")} />
<!-- Low Priority Page Metadata -->
<meta name="description" content={pageSettings.description} />
<meta property="og:type" content="article" />
<meta property="og:locale" content="en-GB" />
<meta property="og:title" content={settings.website.titleTemplate.replaceAll("%T", pageSettings.title)} />
<meta property="og:description" content={pageSettings.description} />
<meta property="og:image:url" content={pageSettings.thumbnail.url} />
<meta property="og:url" content={`${settings.website.domainName}${Astro.url.pathname}`} />
<meta property="og:site_name" content={settings.website.applicationName} />
<meta property="article:author" content={settings.website.author.name} />
<meta property="article:tags" content={[].join(",")} />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={settings.website.titleTemplate.replaceAll("%T", pageSettings.title)} />
<meta name="twitter:description" content={pageSettings.description} />
<meta name="twitter:image" content={pageSettings.thumbnail.url} />
<meta name="twitter:url" content={`${settings.website.domainName}${Astro.url.pathname}`} />
<meta name="twitter:site" content={settings.website.twitter.handle} />
<meta name="twitter:creator" content={settings.website.twitter.handle} />
<meta name="pagename" content={pageSettings.title} />
<meta name="category" content="webpage" />
<!-- Low Priority Metadata -->
<meta name="copyright" content={settings.website.copyright} />
<meta name="author" content={`${settings.website.author.name}, ${settings.website.author.url}`} />
<meta name="designer" content={settings.website.designer} />
<meta name="owner" content={settings.website.owner} />
<meta name="developer" content={settings.website.developer} />
<meta name="application-name" content={settings.website.applicationName} />
<!-- Scripts and Style -->
</head>
<body style={ css } class="bg-[#fcfcfc] flex flex-col min-h-screen">
<slot class="grow" name="content" />
<Footer />
</body>
</html>