summaryrefslogtreecommitdiff
path: root/examples/blog-multiple-authors/src/pages/index.astro
blob: 4e93a932e864314d0c10cbf49b59a747ed2d98d6 (plain) (blame)
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
---
// Component Imports
import MainHead from '../components/MainHead.astro';
import Nav from '../components/Nav.astro';
import PostPreview from '../components/PostPreview.astro';
import Pagination from '../components/Pagination.astro';
import authorData from '../data/authors.json';

// Component Script:
// You can write any JavaScript/TypeScript that you'd like here.
// It will run during the build, but never in the browser.
// All variables are available to use in the HTML template below.
let title = 'Don’s Blog';
let description = 'An example blog on Astro';
let canonicalURL = Astro.canonicalURL;

// Data Fetching: List all Markdown posts in the repo.
let allPosts = await Astro.glob('./post/*.md');
allPosts.sort((a, b) => new Date(b.frontmatter.date).valueOf() - new Date(a.frontmatter.date).valueOf());
let firstPage = allPosts.slice(0, 2);
// Full Astro Component Syntax:
// https://docs.astro.build/core-concepts/astro-components/
---

<html lang="en">
	<head>
		<MainHead {title} {description} image={allPosts[0].frontmatter.image} {canonicalURL} />
	</head>

	<body>
		<Nav {title} />

		<main class="wrapper">
			{allPosts.map((post) => <PostPreview post={post} author={authorData[post.frontmatter.author]} />)}
		</main>

		<footer>
			<Pagination prevUrl="/posts" nextUrl="/posts/2" />
		</footer>
	</body>
</html>