From a84908b7e8a0e2423afd6b836eccf27a420270b4 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Wed, 20 Sep 2023 19:56:52 +0900 Subject: feat(blog/nuldoc): change content format from DocBook to NulDoc --- vhosts/blog/nuldoc-src/slide/parse.ts | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) (limited to 'vhosts/blog/nuldoc-src/slide/parse.ts') diff --git a/vhosts/blog/nuldoc-src/slide/parse.ts b/vhosts/blog/nuldoc-src/slide/parse.ts index 00ff645f..45ac6388 100644 --- a/vhosts/blog/nuldoc-src/slide/parse.ts +++ b/vhosts/blog/nuldoc-src/slide/parse.ts @@ -1,19 +1,29 @@ +import { parse as parseToml } from "std/encoding/toml.ts"; import { Config } from "../config.ts"; -import { parseXmlFile } from "../xml.ts"; -import { SlideError, XmlParseError } from "../errors.ts"; -import { createNewSlideFromRootElement, Slide } from "./slide.ts"; +import { createNewSlideFromTomlRootObject, Slide } from "./slide.ts"; export async function parseSlideFile( filePath: string, config: Config, ): Promise { try { - const root = await parseXmlFile(filePath); - return createNewSlideFromRootElement(root, filePath, config); + // TODO runtime assertion + const root = parseToml(await Deno.readTextFile(filePath)) as { + slide: { + title: string; + event: string; + talkType: string; + link: string; + tags: string[]; + revisions: { + date: string; + remark: string; + }[]; + }; + }; + return createNewSlideFromTomlRootObject(root, filePath, config); } catch (e) { - if (e instanceof SlideError || e instanceof XmlParseError) { - e.message = `${e.message} in ${filePath}`; - } + e.message = `${e.message} in ${filePath}`; throw e; } } -- cgit v1.2.3-70-g09d2