33 lines
917 B
Plaintext
33 lines
917 B
Plaintext
---
|
|
import BaseHead from '../../components/BaseHead.astro';
|
|
import Header from '../../components/Header.astro';
|
|
import Main from '../../components/Main.astro';
|
|
import Footer from '../../components/Footer.astro';
|
|
import { SITE_TITLE, SITE_DESCRIPTION } from '../../consts';
|
|
import { getCollection } from 'astro:content';
|
|
import Showcase from '../../components/Showcase.astro';
|
|
import { convertPost } from '../../models/Post';
|
|
|
|
const posts: Post[] = (await getCollection('blog')).map(convertPost).sort(
|
|
(a, b) => b.pubDate.valueOf() - a.pubDate.valueOf(),
|
|
);
|
|
---
|
|
|
|
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<BaseHead title={SITE_TITLE} description={SITE_DESCRIPTION} />
|
|
</head>
|
|
<body>
|
|
<Header />
|
|
<Main>
|
|
{posts.length === 0 ? (
|
|
<h1 style="opacity: .5; user-select: none;">No posts yet 😛</h1>
|
|
) : (
|
|
<Showcase collection="blog" posts={posts} />
|
|
)}
|
|
</Main>
|
|
<Footer />
|
|
</body>
|
|
</html>
|