跳到主要内容(z.
string
()), z.
string
(), z.
null
()]).
optional
(),
cover: z.string().optional(),
draft: z.boolean().optional(),
series: z.string().optional(),
seriesOrder: z.number().optional(),
updated: z.union([z.string(), z.date()]).optional(),
})
// Docs
const DocsFrontmatterSchema = z.object({
title: z.string(),
description: z.string().optional(),
cover: z.string().optional(),
date: z.union([z.string(), z.date()]).optional(),
category: z.string().optional(),
tags: z.union([z.array(z.string()), z.string(), z.null()]).optional(),
updated: z.union([z.string(), z.date()]).optional(),
draft: z.boolean().optional(),
})
校验失败时文章会被跳过(blog 的 getAllPosts 和 docs 的 scanDocs 均有 try-catch)。所以 title 必须填写。