diff --git a/src/lib/markdown-to-json.ts b/src/lib/markdown-to-json.ts new file mode 100644 index 0000000..d1cfda9 --- /dev/null +++ b/src/lib/markdown-to-json.ts @@ -0,0 +1,25 @@ +/** + * Convert Markdown text to TipTap/ProseMirror JSON format + * Used for creating and updating comments via Docmost API + */ +import { marked } from "marked"; +import { generateJSON } from "@tiptap/html"; +import { JSDOM } from "jsdom"; +import { tiptapExtensions } from "./tiptap-extensions.js"; + +// Ensure DOM environment is available (may already be set by collaboration.ts) +if (typeof global.document === "undefined") { + const dom = new JSDOM("
"); + global.window = dom.window as any; + global.document = dom.window.document; + // @ts-ignore + global.Element = dom.window.Element; +} + +/** + * Convert markdown string to TipTap-compatible ProseMirror JSON + */ +export async function markdownToTiptapJson(markdown: string): Promise