summaryrefslogtreecommitdiffhomepage
path: root/vhosts/blog/nuldoc-src
diff options
context:
space:
mode:
Diffstat (limited to 'vhosts/blog/nuldoc-src')
-rw-r--r--vhosts/blog/nuldoc-src/ndoc/document.ts31
-rw-r--r--vhosts/blog/nuldoc-src/ndoc/parse.ts24
2 files changed, 24 insertions, 31 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 {
diff --git a/vhosts/blog/nuldoc-src/ndoc/parse.ts b/vhosts/blog/nuldoc-src/ndoc/parse.ts
index 857c086c..d1557750 100644
--- a/vhosts/blog/nuldoc-src/ndoc/parse.ts
+++ b/vhosts/blog/nuldoc-src/ndoc/parse.ts
@@ -1,25 +1,13 @@
import { parse as parseToml } from "std/toml/mod.ts";
import { Config } from "../config.ts";
import { parseXmlString } from "../xml.ts";
-import { createNewDocumentFromRootElement, Document } from "./document.ts";
+import {
+ createNewDocumentFromRootElement,
+ Document,
+ PostMetadata,
+ PostMetadataSchema,
+} from "./document.ts";
import toHtml from "./to_html.ts";
-import { z } from "zod/mod.ts";
-
-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(),
- })),
- }),
-});
-
-type PostMetadata = z.infer<typeof PostMetadataSchema>;
export async function parseNulDocFile(
filePath: string,