--- import { getCollection, type CollectionEntry } from "astro:content"; import Timestamp from "./Timestamp.astro"; import { sortBy } from "lodash-es"; interface Props { basePath: string; drafts?: "exclude" | "include" | "only"; } type Post = CollectionEntry<"posts">; const { basePath, drafts: includeDrafts } = Astro.props; let filter; switch (includeDrafts) { case "exclude": case undefined: filter = (post: Post) => !post.data.draft; break; case "include": filter = (_: Post) => true; break; case "only": filter = (post: Post) => post.data.draft === true; break; } const allPosts = await getCollection("posts", filter); const sortedPosts = sortBy(allPosts, (post) => -post.data.date); --- { sortedPosts.map((post) => { return ( ); }) }
{post.data.title}