website/src/components/SmallCard.astro
Max Richter 1e04a7be6f
Some checks failed
Deploy to GitHub Pages / build (push) Failing after 14m41s
Deploy to GitHub Pages / deploy (push) Has been skipped
feat: some stuff
2024-04-03 21:09:50 +02:00

49 lines
1.1 KiB
Plaintext

---
import markdownToText from "@helpers/markdownToText";
import { useTranslatedPath } from "@i18n/utils";
const tp = useTranslatedPath(Astro.url);
interface Props {
post: {
data: {
title: string;
description?: string;
icon?: string;
tags?: string[];
};
collection: string;
body: string;
slug: string;
};
}
const { post } = Astro.props;
---
<a
href={tp(`/${post.collection}/${post.slug.split("/")[0]}`)}
class="rounded-diag-md border border-neutral p-4 overflow-hidden"
>
<h2
class="text-2xl flex gap-2 items-center line-clamp text-ellipsis overflow-hidden"
>
{post.data.icon && <img src={post.data.icon} class="h-6" />}
{post.data.title}
</h2>
<p class="text-ellipsis overflow-hidden line-clamp-2">
{post.data.description || markdownToText(post.body).slice(0, 200)}
</p>
{
post.data.tags && (
<div class="flex gap-2 mt-2">
{post.data.tags.map((tag) => (
<span class="text-xs border border-neutral p-2 rounded-md">
{tag}
</span>
))}
</div>
)
}
</a>