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)