UNPKG

@paperbits/prosemirror

Version:
35 lines (28 loc) 1.18 kB
import { BlockModel } from "@paperbits/common/text/models"; import { ProsemirrorSchemaBuilder } from "./prosemirrorSchemaBuilder"; import { DOMSerializer, Schema } from "prosemirror-model"; import { ModelConverter } from "./modelConverter"; export class ProseMirrorRenderer { private readonly schema: Schema<any, any>; private readonly serializer: DOMSerializer; constructor() { const builder = new ProsemirrorSchemaBuilder(); this.schema = builder.build(); this.serializer = DOMSerializer.fromSchema(this.schema); } public renderBlock(element: HTMLElement, blockContent: BlockModel[]): void { try { const prosemirrorContent = ModelConverter.modelToProseMirrorModel(blockContent); const content: any = { type: "doc", content: prosemirrorContent }; const node: any = this.schema.nodeFromJSON(content); const fragment = this.serializer.serializeFragment(node); element.appendChild(fragment); } catch (error) { console.error(error.stack); } } }