summaryrefslogtreecommitdiff
path: root/src/layouts/BlogPost.astro
blob: b7093567f90d7dd1251d689b7f4611546913630b (plain)
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
---
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>