aboutsummaryrefslogtreecommitdiffhomepage
path: root/services/blog/nuldoc-src/djot/document.ts
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2025-11-02 17:49:34 +0900
committernsfisis <nsfisis@gmail.com>2025-11-02 17:49:34 +0900
commit57315c52be96d2a2c013f0cfb0de5429980e301a (patch)
tree5d691497772fddfe401cd970ead4e9a74b34ef38 /services/blog/nuldoc-src/djot/document.ts
parentcf4091a93ed831456e8b30e2a9e1fc2650dcae02 (diff)
downloadnsfisis.dev-57315c52be96d2a2c013f0cfb0de5429980e301a.tar.gz
nsfisis.dev-57315c52be96d2a2c013f0cfb0de5429980e301a.tar.zst
nsfisis.dev-57315c52be96d2a2c013f0cfb0de5429980e301a.zip
refactor(blog): rename directory, services/{blog => nuldoc}/
Diffstat (limited to 'services/blog/nuldoc-src/djot/document.ts')
-rw-r--r--services/blog/nuldoc-src/djot/document.ts75
1 files changed, 0 insertions, 75 deletions
diff --git a/services/blog/nuldoc-src/djot/document.ts b/services/blog/nuldoc-src/djot/document.ts
deleted file mode 100644
index 3e8cd92..0000000
--- a/services/blog/nuldoc-src/djot/document.ts
+++ /dev/null
@@ -1,75 +0,0 @@
-import { Doc as DjotDoc } from "@djot/djot";
-import { join } from "@std/path";
-import { z } from "zod/mod.ts";
-import { Config } from "../config.ts";
-import { Element } from "../dom.ts";
-import { Revision, stringToDate } from "../revision.ts";
-import { djot2ndoc } from "./djot2ndoc.ts";
-
-export const PostMetadataSchema = z.object({
- article: z.object({
- uuid: z.string(),
- title: z.string(),
- description: z.string(),
- tags: z.array(z.string()),
- toc: z.boolean().optional(),
- revisions: z.array(z.object({
- date: z.string(),
- remark: z.string(),
- isInternal: z.boolean().optional(),
- })),
- }),
-});
-
-export type PostMetadata = z.infer<typeof PostMetadataSchema>;
-
-export type TocEntry = {
- id: string;
- text: string;
- level: number;
- children: TocEntry[];
-};
-
-export type TocRoot = {
- entries: TocEntry[];
-};
-
-export type Document = {
- root: Element;
- sourceFilePath: string;
- uuid: string;
- link: string;
- title: string;
- description: string; // TODO: should it be markup text?
- tags: string[];
- revisions: Revision[];
- toc?: TocRoot;
- isTocEnabled: boolean;
-};
-
-export function createNewDocumentFromDjotDocument(
- root: DjotDoc,
- meta: PostMetadata,
- sourceFilePath: string,
- config: Config,
-): Document {
- const cwd = Deno.cwd();
- const contentDir = join(cwd, config.locations.contentDir);
- const link = sourceFilePath.replace(contentDir, "").replace(".xml", "/");
- return {
- root: djot2ndoc(root),
- sourceFilePath,
- uuid: meta.article.uuid,
- link: link,
- title: meta.article.title,
- description: meta.article.description,
- tags: meta.article.tags,
- revisions: meta.article.revisions.map((r, i) => ({
- number: i,
- date: stringToDate(r.date),
- remark: r.remark,
- isInternal: !!r.isInternal,
- })),
- isTocEnabled: meta.article.toc !== false,
- };
-}