Files
zhaoguiyang.site/src/components/blog/Languages.astro
2025-04-07 15:50:13 -06:00

28 lines
664 B
Plaintext

---
const allPosts = await Astro.glob("../../pages/blog/posts/*.md");
const languages = [
...new Set(allPosts.map((post) => post.frontmatter.languages).flat()),
];
import Capsule from "../ui/Capsule.astro";
const { variant = "default" } = Astro.props;
const baseClasses = "flex flex-wrap";
const variantClasses = {
default: "gap-3 max-lg:gap-1",
vertical: "gap-6 flex-col"
} as const;
const classes = `${baseClasses} ${variantClasses[variant as keyof typeof variantClasses] || variantClasses.default}`;
---
<div class={classes}>
{languages.map((language) => (
<Capsule lang={language} linkEnabled={true} size="md" />
))}
</div>