My personal website.
1---
2interface Props {
3 title: string;
4 banner?: string;
5 graph?: {
6 description: string;
7 url: string;
8 type?: "website" | "article";
9 };
10}
11
12const title = "::" + Astro.props.title;
13const { banner = "https://entomoviscera.online/mainbanner.png" } = Astro.props;
14const { graph } = Astro.props;
15---
16
17<html lang="en">
18 <head>
19 <title>{title}</title>
20 <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
21 <meta charset="utf-8" />
22 <meta name="viewport" content="width=device-width, initial-scale=1.0" />
23 <meta name="generator" content={Astro.generator} />
24 {
25 graph && (
26 <Fragment>
27 <meta name="description" content={graph.description} />
28 <meta property="og:title" content={title} />
29 <meta property="og:description" content={graph.description} />
30 <meta property="og:url" content={graph.url} />
31 <meta property="og:type" content={graph.type ?? "website"} />
32 <meta property="og:image" content={banner} />
33 </Fragment>
34 )
35 }
36 <style is:global>
37 * {
38 padding: 0;
39 margin: 0;
40 }
41
42 img {
43 max-width: 100%;
44 }
45 </style>
46 </head>
47 <body>
48 <slot />
49 </body>
50</html>