diff options
Diffstat (limited to 'vhosts/blog/nuldoc-src/slide/parse.ts')
| -rw-r--r-- | vhosts/blog/nuldoc-src/slide/parse.ts | 31 |
1 files changed, 7 insertions, 24 deletions
diff --git a/vhosts/blog/nuldoc-src/slide/parse.ts b/vhosts/blog/nuldoc-src/slide/parse.ts index 7ba17cb0..170b7484 100644 --- a/vhosts/blog/nuldoc-src/slide/parse.ts +++ b/vhosts/blog/nuldoc-src/slide/parse.ts @@ -1,33 +1,16 @@ import { parse as parseToml } from "std/toml/mod.ts"; -import { Config } from "../config.ts"; -import { createNewSlideFromTomlRootObject, Slide } from "./slide.ts"; -import { z } from "zod/mod.ts"; +import { + createNewSlideFromMetadata, + Slide, + SlideMetadataSchema, +} from "./slide.ts"; -const SlideMetadataSchema = z.object({ - slide: z.object({ - uuid: z.string(), - title: z.string(), - event: z.string(), - talkType: z.string(), - link: z.string(), - tags: z.array(z.string()), - revisions: z.array(z.object({ - date: z.string(), - remark: z.string(), - isInternal: z.boolean().optional(), - })), - }), -}); - -export async function parseSlideFile( - filePath: string, - config: Config, -): Promise<Slide> { +export async function parseSlideFile(filePath: string): Promise<Slide> { try { const root = SlideMetadataSchema.parse( parseToml(await Deno.readTextFile(filePath)), ); - return createNewSlideFromTomlRootObject(root, filePath, config); + return createNewSlideFromMetadata(root, filePath); } catch (e) { if (e instanceof Error) { e.message = `${e.message} in ${filePath}`; |
