<script setup lang="ts"> import type { BlogParsedContent } from "@/shared/types"; useTitle("Blog", "Ramblings and ideas"); //definePageMeta({ layout: "withtop" }); // TODO: paginate stories const docs = await queryContent<BlogParsedContent>("/blog") .sort({ date: -1 }) .where({ _draft: false }) .find(); const tags = new Set( docs .map((p) => p.tags) .flat() .sort() ); </script> <template> <main class="flex flex-col grow prose dark:prose-invert max-w-3xl gap-6 transition" > <h1 class="mb-0">Blog</h1> <div class="m-0"> Filter: <Tag :dest="`/tags/blog/${tag}`" v-for="(tag, index) in tags" :key="index" :name="tag" /> </div> <PostPreviewCard v-for="(post, index) in docs" :key="index" :post type="blog" /> </main> </template>