aboutsummaryrefslogtreecommitdiffstats
path: root/src/content.config.ts
diff options
context:
space:
mode:
authorPinapelz <yukais@pinapelz.com>2026-08-13 20:24:43 -0700
committerPinapelz <yukais@pinapelz.com>2026-08-13 20:24:43 -0700
commit6bd7c45dd6c477c2f288a26f9dddcaff6b14d73e (patch)
tree98e85a5d1dd0f97a7aa300582f924a4f9d76b3ad /src/content.config.ts
parentb913e45faa5b9c4d78f1b575818a7e96b8678ce8 (diff)
migrate codebase to astro blog v7
Diffstat (limited to 'src/content.config.ts')
-rw-r--r--src/content.config.ts50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/content.config.ts b/src/content.config.ts
new file mode 100644
index 0000000..e244388
--- /dev/null
+++ b/src/content.config.ts
@@ -0,0 +1,50 @@
+import { defineCollection, z } from 'astro:content';
+import { glob } from 'astro/loaders';
+
+const blog = defineCollection({
+ loader: glob({
+ pattern: '**/*.{md,mdx}',
+ base: './src/content/blog',
+ generate: (entry) => entry.replace(/\.(md|mdx)$/, '').replace(/\/index$/, ''),
+ }),
+ // Type-check frontmatter using a schema
+ schema: z.object({
+ title: z.string(),
+ description: z.string(),
+ // Transform string to Date object
+ pubDate: z
+ .string()
+ .or(z.date())
+ .transform((val) => new Date(val)),
+ updatedDate: z
+ .string()
+ .optional()
+ .transform((str) => (str ? new Date(str) : undefined)),
+ heroImage: z.string().optional(),
+ }),
+});
+
+const micro = defineCollection({
+ loader: glob({
+ pattern: '**/*.{md,mdx}',
+ base: './src/content/micro',
+ generate: (entry) => entry.replace(/\.(md|mdx)$/, '').replace(/\/index$/, ''),
+ }),
+ // Type-check frontmatter using a schema
+ schema: z.object({
+ title: z.string(),
+ description: z.string(),
+ // Transform string to Date object
+ pubDate: z
+ .string()
+ .or(z.date())
+ .transform((val) => new Date(val)),
+ updatedDate: z
+ .string()
+ .optional()
+ .transform((str) => (str ? new Date(str) : undefined)),
+ heroImage: z.string().optional(),
+ }),
+});
+
+export const collections = { blog, micro };
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage