add hostic-dom
This commit is contained in:
@@ -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()
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user