aboutsummaryrefslogtreecommitdiffstats
path: root/src/pages/index.astro
diff options
context:
space:
mode:
Diffstat (limited to 'src/pages/index.astro')
-rw-r--r--src/pages/index.astro85
1 files changed, 85 insertions, 0 deletions
diff --git a/src/pages/index.astro b/src/pages/index.astro
new file mode 100644
index 0000000..019283d
--- /dev/null
+++ b/src/pages/index.astro
@@ -0,0 +1,85 @@
+---
+import BlogCard from '@/components/BlogCard.astro'
+import Link from '@/components/Link.astro'
+import PageHead from '@/components/PageHead.astro'
+import { buttonVariants } from '@/components/ui/button'
+import { SITE } from '@/consts'
+import Layout from '@/layouts/Layout.astro'
+import { getRecentPosts } from '@/lib/data-utils'
+
+const blog = await getRecentPosts(SITE.featuredPostCount)
+---
+
+<Layout class="max-w-3xl">
+ <PageHead slot="head" title="Home" />
+ <section class="rounded-lg border">
+ <div class="flex flex-col space-y-1.5 p-6">
+ <h3 class="text-3xl leading-none font-medium">er·u·dite</h3>
+ <p class="text-muted-foreground text-sm">
+ /ˈer(y)əˌdīt/ &bull; <span class="font-medium">adjective</span>
+ </p>
+ </div>
+ <div class="p-6 pt-0">
+ <p class="text-muted-foreground mb-2 text-sm">
+ astro-erudite is an opinionated, unstyled static blogging template built
+ with <Link
+ href="https://astro.build"
+ class="text-foreground"
+ external
+ underline>Astro</Link
+ >, <Link
+ href="https://tailwindcss.com"
+ class="text-foreground"
+ external
+ underline>Tailwind</Link
+ >, and <Link
+ href="https://ui.shadcn.com"
+ class="text-foreground"
+ external
+ underline>shadcn/ui</Link
+ >. Extraordinarily loosely based on the <Link
+ href="https://astro-micro.vercel.app/"
+ class="text-foreground"
+ external
+ underline>Astro Micro</Link
+ > theme.
+ </p>
+ <p class="text-muted-foreground text-sm">
+ To use this template, check out the <Link
+ href="https://github.com/jktrn/astro-erudite"
+ class="text-foreground"
+ underline
+ external>GitHub</Link
+ > repository. To learn more about why this template exists, read this blog
+ post: <Link
+ href="/blog/the-state-of-static-blogs"
+ class="text-foreground"
+ underline>The State of Static Blogs in 2024</Link
+ >.
+ </p>
+ </div>
+ </section>
+ <section class="flex flex-col gap-y-4">
+ <h2 class="text-2xl font-medium">Latest posts</h2>
+ <ul class="flex flex-col gap-y-4">
+ {
+ blog.map((post) => (
+ <li>
+ <BlogCard entry={post} />
+ </li>
+ ))
+ }
+ </ul>
+ <div class="flex justify-center">
+ <Link
+ href="/blog"
+ class={buttonVariants({ variant: 'ghost' }) + ' group'}
+ >
+ See all posts <span
+ class="ml-1.5 transition-transform group-hover:translate-x-1"
+ >&rarr;</span
+ >
+ </Link>
+ </div>
+ </section>
+</Layout>