From 95fca8aa6172213913bcdad93bf1a07b67830553 Mon Sep 17 00:00:00 2001 From: Hans Pagel Date: Fri, 4 Sep 2020 12:50:10 +0200 Subject: [PATCH] refactor generateHtml to allow directly passing a Schema --- packages/core/src/utils/generateHtml.ts | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/packages/core/src/utils/generateHtml.ts b/packages/core/src/utils/generateHtml.ts index b21f8a6d..e1f1b6f4 100644 --- a/packages/core/src/utils/generateHtml.ts +++ b/packages/core/src/utils/generateHtml.ts @@ -1,16 +1,23 @@ import getSchema from './getSchema' import { Node as ProseMirrorNode, DOMSerializer } from 'prosemirror-model' import { Extensions } from '../types' +import { Schema } from 'prosemirror-model' -export default function generateHtml(doc: object, extensions: Extensions): string { - const schema = getSchema(extensions) +export default function generateHtml(doc: object, schema: (Extensions | Schema)): string { + let useSchema - let contentNode = ProseMirrorNode.fromJSON(schema, doc) - let temporaryDocument = document.implementation.createHTMLDocument() + 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() const container = temporaryDocument.createElement('div') const fragment = DOMSerializer - .fromSchema(schema) + .fromSchema(useSchema) .serializeFragment(contentNode.content) container.appendChild(fragment)