summaryrefslogtreecommitdiff
path: root/website/src/layouts
diff options
context:
space:
mode:
authorJoe Carstairs <65492573+joeacarstairs@users.noreply.github.com>2024-05-05 21:00:40 +0100
committerGitHub <noreply@github.com>2024-05-05 21:00:40 +0100
commit86450b3dd8bec3b76e2b2a03b8cdc8a708c5f3bc (patch)
tree7576d8863193369adc87dd80d91a3d5d3f58ede1 /website/src/layouts
parent579e12cfebce9a70ab2adf5842e2673673a707d2 (diff)
Infrastructure as code (#3)
* Moves website to website/ * Adds terraform gitignores * Terraform with AWS provider * Initialises Terraform * Locals and variables for provider * Fetches SSL certificate from ACM * S3 static website bucket * CloudFront distribution * Route53 records * Deployment workflow uses secret S3 bucket suffix * Adds README --------- Co-authored-by: Joe Carstairs <65492573+Sycamost@users.noreply.github.com>
Diffstat (limited to 'website/src/layouts')
-rw-r--r--website/src/layouts/BlogPost.astro50
-rw-r--r--website/src/layouts/Page.astro17
2 files changed, 67 insertions, 0 deletions
diff --git a/website/src/layouts/BlogPost.astro b/website/src/layouts/BlogPost.astro
new file mode 100644
index 0000000..b709356
--- /dev/null
+++ b/website/src/layouts/BlogPost.astro
@@ -0,0 +1,50 @@
+---
+import type { CollectionEntry } from 'astro:content';
+import BaseHead from '../components/BaseHead.astro';
+import FormattedDate from '../components/FormattedDate.astro';
+
+type Props = CollectionEntry<'blog'>['data'];
+
+const { title, description, pubDate, updatedDate } = Astro.props;
+
+const canonicalUrl = new URL(Astro.url.pathname, Astro.site);
+
+const pubDateStr = `${pubDate.year}-${pubDate.month}-${pubDate.day}`;
+const updatedDateStr = updatedDate ?
+ `${updatedDate.year}-${updatedDate.month}-${updatedDate.day}`
+ : pubDateStr;
+---
+
+<html lang="en">
+ <head>
+ <BaseHead title={`${title} | joeac’s blog`} description={description} />
+ <link rel="stylesheet" href="/css/blog.css">
+ </head>
+
+ <body>
+ <article class="h-entry">
+ <aside>
+ <span>
+ This is a blog post by
+ <a class="p-author h-card h-card--minimal" href="/">Joe Carstairs</a>.
+ </span>
+ { updatedDate
+ ? (
+ <span>Updated: <FormattedDate date={updatedDateStr} className="dt-updated"/>.</span>
+ <span>Originally published: <FormattedDate date={pubDateStr} className="dt-published"/>.</span>
+ ) : <span>Published: <FormattedDate date={pubDateStr} className="dt-published"/>.</span>
+ }
+ <span>Go back to his <a href="/blog">blog</a> if you like.</span>
+ <span><a class="u-url uid" href={canonicalUrl}>Permalink</a></span>
+ </aside>
+
+ <h1 class="h-name">{title}</h1>
+
+ <p class="p-summary" set:html={description} />
+
+ <div class="e-content">
+ <slot />
+ </div>
+ </article>
+ </body>
+</html>
diff --git a/website/src/layouts/Page.astro b/website/src/layouts/Page.astro
new file mode 100644
index 0000000..4e5f3bb
--- /dev/null
+++ b/website/src/layouts/Page.astro
@@ -0,0 +1,17 @@
+---
+import BaseHead from "../components/BaseHead.astro";
+
+const { title, description } = Astro.props;
+---
+
+<!DOCTYPE html>
+<html lang="en-GB">
+ <head>
+ <BaseHead title={title} description={description} />
+ </head>
+
+ <body>
+ <slot />
+ </body>
+</html>
+