add hostic-dom

This commit is contained in:
Hans Pagel
2020-10-28 17:12:25 +01:00
parent c353a7f01f
commit 4af6049792
6 changed files with 68 additions and 290 deletions

View File

@@ -1,15 +1,13 @@
import { Node, DOMSerializer, Schema } from 'prosemirror-model'
import { JSDOM } from 'jsdom'
// @ts-ignore
import { createHTMLDocument } from 'hostic-dom'
export default function getHtmlFromFragment(doc: Node, schema: Schema): string {
const fragment = DOMSerializer
return DOMSerializer
.fromSchema(schema)
.serializeFragment(doc.content)
const temporaryDocument = new JSDOM('<!DOCTYPE html>').window.document
const container = temporaryDocument.createElement('div')
container.appendChild(fragment)
return container.innerHTML
.serializeFragment(doc.content, {
document: createHTMLDocument(),
})
// @ts-ignore
.render()
}

View File

@@ -2,7 +2,7 @@ import { Extensions, getSchema } from '@tiptap/core'
import { Node } from 'prosemirror-model'
import getHtmlFromFragment from './getHtmlFromFragment'
export default function generateHtml(doc: object, extensions: Extensions): string {
export function generateHtml(doc: object, extensions: Extensions): string {
const schema = getSchema(extensions)
const contentNode = Node.fromJSON(schema, doc)

View File

@@ -9,7 +9,7 @@
"dependencies": {
"@tiptap/core": "2.x",
"@types/jsdom": "^16.2.4",
"jsdom": "^16.4.0",
"hostic-dom": "^0.8.5",
"prosemirror-model": "^1.12.0"
}
}