39 lines
1 KiB
Text
39 lines
1 KiB
Text
|
---
|
||
|
import MainHead from '../components/MainHead.astro';
|
||
|
import Footer from '../components/Footer.svelte';
|
||
|
import Nav from '../components/Nav.svelte';
|
||
|
import PortfolioPreview from '../components/PortfolioPreview.svelte';
|
||
|
|
||
|
interface MarkdownFrontmatter {
|
||
|
publishDate: number;
|
||
|
}
|
||
|
|
||
|
const projects = Astro.fetchContent<MarkdownFrontmatter>('./project/**/*.md')
|
||
|
.filter(({ publishDate }) => !!publishDate)
|
||
|
.sort((a, b) => new Date(b.publishDate).valueOf() - new Date(a.publishDate).valueOf());
|
||
|
---
|
||
|
|
||
|
<html lang="en">
|
||
|
<head>
|
||
|
<MainHead title="All Projects | Jeanine White" description="Learn about Jenine White's most recent projects" />
|
||
|
<style lang="scss">
|
||
|
.grid {
|
||
|
display: grid;
|
||
|
grid-gap: 3rem;
|
||
|
}
|
||
|
</style>
|
||
|
</head>
|
||
|
<body>
|
||
|
<Nav />
|
||
|
<div class="wrapper">
|
||
|
<h1 class="title mt4 mb4">All Projects</h1>
|
||
|
<div class="grid">
|
||
|
{projects.map((project) => (
|
||
|
<PortfolioPreview project={project} />
|
||
|
))}
|
||
|
</div>
|
||
|
</div>
|
||
|
<Footer />
|
||
|
</body>
|
||
|
</html>
|