diff --git a/src/routes/entries/+layout.ts b/src/routes/entries/+layout.ts index c8cacf0..9c3b7c5 100644 --- a/src/routes/entries/+layout.ts +++ b/src/routes/entries/+layout.ts @@ -1 +1,36 @@ -export const prerender = true; \ No newline at end of file +import convertDate from "$lib/convertDate"; + +export const prerender = true; + +export interface PostData { + path: string, + published: string, + metadata: Record, +} + +const allPostFiles: Record = import.meta.glob('./*/+page.md', { eager: true }); +const allPosts: PostData[] = Object.entries(allPostFiles).map(([path, post]) => { + const postPath = path.slice(2, -8); + return { + metadata: post.metadata, + path: postPath, + published: convertDate(post.metadata.date) + }; +}).map((post) => { + if (!("excerpt" in post.metadata)) { + post.metadata.excerpt = "" + } + return post; +}).toSorted((post, opost) => { + const date = new Date(post.metadata.date); + const odate = new Date(opost.metadata.date); + return odate.getTime() - date.getTime() +}); +export const _allPosts = allPosts; + +export async function load({}) { + if (!allPosts.length) { + return { status: 404 }; + } + return { posts: allPosts }; +} \ No newline at end of file diff --git a/src/routes/entries/+page.svelte b/src/routes/entries/+page.svelte index e1f293c..1677250 100644 --- a/src/routes/entries/+page.svelte +++ b/src/routes/entries/+page.svelte @@ -1,6 +1,6 @@