summaryrefslogtreecommitdiffhomepage
path: root/vhosts/blog/nuldoc-src/ndoc/document.ts
diff options
context:
space:
mode:
Diffstat (limited to 'vhosts/blog/nuldoc-src/ndoc/document.ts')
-rw-r--r--vhosts/blog/nuldoc-src/ndoc/document.ts31
1 files changed, 18 insertions, 13 deletions
diff --git a/vhosts/blog/nuldoc-src/ndoc/document.ts b/vhosts/blog/nuldoc-src/ndoc/document.ts
index c99fb7f0..f1cdede9 100644
--- a/vhosts/blog/nuldoc-src/ndoc/document.ts
+++ b/vhosts/blog/nuldoc-src/ndoc/document.ts
@@ -3,6 +3,23 @@ import { Config } from "../config.ts";
import { DocBookError } from "../errors.ts";
import { Revision, stringToDate } from "../revision.ts";
import { Element, findFirstChildElement } from "../dom.ts";
+import { z } from "zod/mod.ts";
+
+export const PostMetadataSchema = z.object({
+ article: z.object({
+ uuid: z.string(),
+ title: z.string(),
+ description: z.string(),
+ tags: z.array(z.string()),
+ revisions: z.array(z.object({
+ date: z.string(),
+ remark: z.string(),
+ isInternal: z.boolean().optional(),
+ })),
+ }),
+});
+
+export type PostMetadata = z.infer<typeof PostMetadataSchema>;
export type Document = {
root: Element;
@@ -17,19 +34,7 @@ export type Document = {
export function createNewDocumentFromRootElement(
root: Element,
- meta: {
- article: {
- uuid: string;
- title: string;
- description: string;
- tags: string[];
- revisions: {
- date: string;
- remark: string;
- isInternal?: boolean;
- }[];
- };
- },
+ meta: PostMetadata,
sourceFilePath: string,
config: Config,
): Document {