19 lines
768 B
Text
19 lines
768 B
Text
---
|
|
import { getCollection } from 'astro:content';
|
|
import Layout from '../../layouts/Layout.astro';
|
|
import { formatDate } from '../../lib/format';
|
|
import { organizePostsByCategory } from '../../lib/posts';
|
|
import { getSlug } from '../../utils';
|
|
|
|
const posts = await getCollection('md', ({ data }) => data.draft !== true);
|
|
const { grouped, categories: sortedCategories } = organizePostsByCategory(posts);
|
|
---
|
|
<Layout title="md - lewis m.w.">
|
|
|
|
{sortedCategories.map(category => (
|
|
<details open>
|
|
<summary>{category}</summary>
|
|
<pre set:html={grouped[category].map(post => `<span class="muted">${formatDate(post.data.date)}</span> <a href="/md/${getSlug(post.id)}">${post.data.title}</a>${post.data.pinned ? ' [pinned]' : ''}`).join('\n')} />
|
|
</details>
|
|
))}
|
|
</Layout>
|