-
Notifications
You must be signed in to change notification settings - Fork 4
/
Base.astro
91 lines (84 loc) · 2.48 KB
/
Base.astro
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
---
import { Footer, Header } from '~components';
import '../styles/global.css';
import Banner from '~components/Banner.astro';
export interface Props {
subtitle?: string;
skipTargetId?: string;
title: string;
}
const { title: _title, skipTargetId } = Astro.props as Props;
// Create a title that includes the page title, if one is provided.
// (e.g. `Participate | The Collab Lab`).
// The homepage is just `The Collab Lab`.
const title =
_title === 'The Collab Lab' ? _title : `${_title} | The Collab Lab`;
// TODO: Allow the use of a custom description for each page,
// (via prop?), and fall back to this description if none is provided.
const description =
'Gain practical experience by working remotely on real world projects with other early-career developers.';
const canonicalURL = new URL(
Astro.url.pathname.replace(/([^/])$/, '$1/'),
Astro.site,
);
const jsonLDSchema = JSON.stringify(
{
'@context': 'https://www.schema.org/',
'@type': 'EducationalOrganization',
name: title,
logo: 'https://the-collab-lab.codes/img/logo.svg',
image:
'https://the-collab-lab.codes/img/participate-developers-collage.png',
description: description,
url: canonicalURL.href,
},
null,
0,
);
---
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="generator" content={Astro.generator} />
<meta name="description" content={description} />
<meta property="og:title" content={title} />
<meta property="og:description" content={description} />
<meta
property="og:image"
content={`${Astro.site}img/participate-developers-collage.png`}
/>
<meta property="og:url" content={canonicalURL.href} />
<meta property="og:type" content="website" />
<title>{title}</title>
<link rel="canonical" href={canonicalURL.href} />
<link rel="icon" type="image/ico" href="/favicon.ico" />
<link
rel="preload"
as="font"
type="font/woff2"
href="/fonts/Atkinson-Hyperlegible-Regular.woff2"
crossorigin
/>
<link
rel="preload"
as="font"
type="font/woff2"
href="/fonts/Atkinson-Hyperlegible-Bold.woff2"
crossorigin
/>
<link rel="sitemap" href="/sitemap-index.xml" />
<script type="application/ld+json" set:html={jsonLDSchema} />
</head>
<body>
<a href={`#${skipTargetId}`} class="c-skip-link">Skip to content</a>
<a href="#support-collab-lab" class="c-skip-link">Skip to footer</a>
<Banner />
<Header />
<main>
<slot />
</main>
<Footer />
</body>
</html>