diff options
Diffstat (limited to 'src/components/Sections/LatestPosts.astro')
| -rw-r--r-- | src/components/Sections/LatestPosts.astro | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/components/Sections/LatestPosts.astro b/src/components/Sections/LatestPosts.astro new file mode 100644 index 0000000..e514ff5 --- /dev/null +++ b/src/components/Sections/LatestPosts.astro @@ -0,0 +1,43 @@ +--- +import { getCollection } from "astro:content"; +import dayjs from "dayjs"; +import RSSIcon from "../Icons/RSS.astro"; + +const posts = await getCollection("blog", ({ data }) => { + return data.draft !== true; +}); + +posts.sort((a, b) => b.data.datePublished.getTime() - a.data.datePublished.getTime()); + +const latestPosts = posts.slice(0, 5); +--- + +<style lang="scss"> + @use "../../scss/variables" as *; + + small { + font-size: $fontSizeBase * 0.75; + opacity: 0.5; + } +</style> + +<section> + <h2>Latest posts <RSSIcon /></h2> + <ul> + { + latestPosts.map((post) => ( + <li> + <a href={`/blog/${post.slug}`} lang={post.data.lang}> + {post.data.title} + </a> + + <small> + <time datetime={post.data.datePublished.toISOString()} lang="en"> + {dayjs(post.data.datePublished.toString()).format("MMMM DD, YYYY")} + </time> + </small> + </li> + )) + } + </ul> +</section> |
