tiptap/packages/core/src/utils/generateHtml.ts

27 lines
796 B
TypeScript
Raw Normal View History

import getSchema from './getSchema'
2020-09-04 17:59:09 +08:00
import { Node as ProseMirrorNode, DOMSerializer } from 'prosemirror-model'
import { Extensions } from '../types'
import { Schema } from 'prosemirror-model'
export default function generateHtml(doc: object, schema: (Extensions | Schema)): string {
let useSchema
if (Array.isArray(schema)) {
useSchema = getSchema(schema as Extensions)
} else {
useSchema = schema as Schema
}
const contentNode = ProseMirrorNode.fromJSON(useSchema, doc)
const temporaryDocument = document.implementation.createHTMLDocument()
2020-09-04 17:59:18 +08:00
const container = temporaryDocument.createElement('div')
const fragment = DOMSerializer
.fromSchema(useSchema)
.serializeFragment(contentNode.content)
2020-09-04 17:59:18 +08:00
container.appendChild(fragment)
2020-09-04 17:59:18 +08:00
return container.innerHTML
}