blob: 8e47b8f15e0d513fccf27fe928271b30e324e390 (
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
42
43
44
45
|
---
// 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";
const canonicalURL = new URL(Astro.url.pathname, Astro.site);
// 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>
|