add getSchema & getHtml utility functions to generate HTML from a ProseMirror/tiptap document, without an Editor instance

This commit is contained in:
Hans Pagel
2020-09-03 16:22:08 +02:00
parent 7988be813b
commit e94714a345
5 changed files with 112 additions and 1 deletions

View File

@@ -0,0 +1,21 @@
import Extension from '../Extension'
import Node from '../Node'
import Mark from '../Mark'
import getSchema from './getSchema'
import { Node as ProseMirrorNode, DOMSerializer } from "prosemirror-model"
export default function generateHtml(doc: object, extensions: (Extension | Node | Mark)[]): string {
const schema = getSchema(extensions)
let contentNode = ProseMirrorNode.fromJSON(schema, doc)
let temporaryDocument = document.implementation.createHTMLDocument()
const div = temporaryDocument.createElement('div')
const fragment = DOMSerializer
.fromSchema(schema)
.serializeFragment(contentNode.content)
div.appendChild(fragment)
return div.innerHTML
}