Files
MyBlog-Next/src/content/config.ts
T
Simon Smale 14e2936608 feat: add code-snippets for content creation (#206)
* Create astro-paper.code-snippets

* feat: allow nullable modDatetime

this is needed to allow the snippet to work with a blank date time, and is a precursor of adding in a modified date time setting hook

* Update astro-paper.code-snippets to make feat false by default
2024-01-04 15:53:12 +06:30

27 lines
801 B
TypeScript

import { SITE } from "@config";
import { defineCollection, z } from "astro:content";
const blog = defineCollection({
type: "content",
schema: ({ image }) =>
z.object({
author: z.string().default(SITE.author),
pubDatetime: z.date(),
modDatetime: z.date().optional().nullable(),
title: z.string(),
featured: z.boolean().optional(),
draft: z.boolean().optional(),
tags: z.array(z.string()).default(["others"]),
ogImage: image()
.refine(img => img.width >= 1200 && img.height >= 630, {
message: "OpenGraph image must be at least 1200 X 630 pixels!",
})
.or(z.string())
.optional(),
description: z.string(),
canonicalURL: z.string().optional(),
}),
});
export const collections = { blog };