summaryrefslogtreecommitdiff
path: root/src/components/blog/PostPreview.astro
diff options
context:
space:
mode:
authorDawid Rycerz <dawid@rycerz.xyz>2025-07-03 10:56:21 +0300
committerDawid Rycerz <dawid@rycerz.xyz>2025-07-03 10:56:21 +0300
commit456cf011b36de91c9936994b1fa45703adcd309b (patch)
tree8e60daf998f731ac50d100fa490eaecae1168042 /src/components/blog/PostPreview.astro
Initial fork of chrismwilliams/astro-theme-cactus theme
Diffstat (limited to 'src/components/blog/PostPreview.astro')
-rw-r--r--src/components/blog/PostPreview.astro24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/components/blog/PostPreview.astro b/src/components/blog/PostPreview.astro
new file mode 100644
index 0000000..fc1a9a3
--- /dev/null
+++ b/src/components/blog/PostPreview.astro
@@ -0,0 +1,24 @@
+---
+import type { CollectionEntry } from "astro:content";
+import FormattedDate from "@/components/FormattedDate.astro";
+import type { HTMLTag, Polymorphic } from "astro/types";
+
+type Props<Tag extends HTMLTag> = Polymorphic<{ as: Tag }> & {
+ post: CollectionEntry<"post">;
+ withDesc?: boolean;
+};
+
+const { as: Tag = "div", post, withDesc = false } = Astro.props;
+---
+
+<FormattedDate
+ class="min-w-30 font-semibold text-gray-600 dark:text-gray-400"
+ date={post.data.publishDate}
+/>
+<Tag>
+ {post.data.draft && <span class="text-red-500">(Draft) </span>}
+ <a class="cactus-link" data-astro-prefetch href={`/posts/${post.id}/`}>
+ {post.data.title}
+ </a>
+</Tag>
+{withDesc && <q class="line-clamp-3 italic">{post.data.description}</q>}