diff --git a/src/content/config.ts b/src/content/config.ts index a5ac255..dc035c6 100644 --- a/src/content/config.ts +++ b/src/content/config.ts @@ -11,7 +11,19 @@ const postsCollection = defineCollection({ image: z.string().optional().default(''), // Extended Settings lang: z.string().optional().default(''), - slug: z.string().optional().default(''), + slug: z.string() + .optional() + .default('') + .refine( + (slug) => { + if (!slug) + return true + return /^[\w\-]*$/.test(slug) + }, + { + message: 'Slug can only contain letters, numbers, hyphens and underscores', + }, + ), toc: z.boolean().optional().default(false), pin: z.boolean().optional().default(false), draft: z.boolean().optional().default(false), diff --git a/src/pages/[lang]/index.astro b/src/pages/[lang]/index.astro index 87d2755..def533c 100644 --- a/src/pages/[lang]/index.astro +++ b/src/pages/[lang]/index.astro @@ -21,7 +21,7 @@ const posts = await getPosts()