mirror of
https://github.com/docmost/docmost.git
synced 2025-11-26 04:41:08 +10:00
* page import feature * make file interceptor common * replace @tiptap/html * update tiptap version * reduce table margin * update tiptap version * switch to upstream drag handle lib (fixes table dragging) * WIP * Page import module and other fixes * working page imports * extract page title from h1 heading * finalize page imports * cleanup unused imports * add menu arrow
22 lines
670 B
TypeScript
22 lines
670 B
TypeScript
import { Extensions, getSchema, JSONContent } from '@tiptap/core';
|
|
import { DOMSerializer, Node } from '@tiptap/pm/model';
|
|
import { Window } from 'happy-dom';
|
|
|
|
export function generateHTML(doc: JSONContent, extensions: Extensions): string {
|
|
const schema = getSchema(extensions);
|
|
const contentNode = Node.fromJSON(schema, doc);
|
|
|
|
const window = new Window();
|
|
|
|
const fragment = DOMSerializer.fromSchema(schema).serializeFragment(
|
|
contentNode.content,
|
|
{
|
|
document: window.document as unknown as Document,
|
|
},
|
|
);
|
|
|
|
const serializer = new window.XMLSerializer();
|
|
// @ts-ignore
|
|
return serializer.serializeToString(fragment as unknown as Node);
|
|
}
|