import type { Component } from 'svelte'; export interface PostMetadata { title: string; date: string; description: string; tags?: string[]; } export interface Post extends PostMetadata { slug: string; } export interface PostModule { default: Component; metadata: PostMetadata; } const postLoaders = import.meta.glob('/src/posts/*.svx'); function getSlugFromPath(path: string): string { return path.split('/').pop()?.replace('.svx', '') ?? ''; } export function getPostSlugs(): string[] { return Object.keys(postLoaders) .map((path) => getSlugFromPath(path)) .sort(); } export async function getPost(slug: string): Promise { const path = `/src/posts/${slug}.svx`; const loader = postLoaders[path]; if (!loader) { return undefined; } return loader(); }