Create PhotoLayout for later
This commit is contained in:
80
astro/src/layouts/PhotoLayout.astro
Normal file
80
astro/src/layouts/PhotoLayout.astro
Normal file
@@ -0,0 +1,80 @@
|
||||
---
|
||||
import '@/styles/global.css';
|
||||
import { getSettings } from "@/content/settings/settings";
|
||||
import { getTextColor } from '@/lib/colors';
|
||||
|
||||
interface Props {
|
||||
settings: WebpageLayoutProps;
|
||||
}
|
||||
|
||||
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" />
|
||||
|
||||
<!-- Low Priority Page Metadata -->
|
||||
<meta name="description" content={pageSettings.description} />
|
||||
|
||||
<meta property="og:type" content="website" />
|
||||
<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 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]">
|
||||
<slot name="content" />
|
||||
</body>
|
||||
</html>
|
||||
@@ -5,6 +5,7 @@ import { getSettings } from "@/content/settings/settings"
|
||||
import WebpageLayout from "@/layouts/WebpageLayout.astro";
|
||||
import BlogLayout from "@/layouts/BlogLayout.astro";
|
||||
import ProjectLayout from "@/layouts/ProjectLayout.astro";
|
||||
import PhotoLayout from '@/layouts/PhotoLayout.astro';
|
||||
import BlogIndex from "@/components/blogs/BlogIndex.astro";
|
||||
import ProjectIndex from "@/components/projects/ProjectIndex.astro";
|
||||
import Webpage from "@/components/webpage/Webpage.astro";
|
||||
@@ -144,7 +145,7 @@ if (page === null || page.page === null || !page.page.exists) {
|
||||
) }
|
||||
|
||||
{ page.pageType === "Photo" && (
|
||||
<WebpageLayout settings={{
|
||||
<PhotoLayout settings={{
|
||||
searchEngine: {
|
||||
title: page.page.album.title,
|
||||
description: `See this photo from the album ${page.page.album.title}`,
|
||||
@@ -160,5 +161,5 @@ if (page === null || page.page === null || !page.page.exists) {
|
||||
<Fragment slot="content">
|
||||
<div>{JSON.stringify(page.page)}</div>
|
||||
</Fragment>
|
||||
</WebpageLayout>
|
||||
</PhotoLayout>
|
||||
) }
|
||||
|
||||
Reference in New Issue
Block a user