add plugin support
This commit is contained in:
@@ -13,10 +13,12 @@
|
||||
],
|
||||
"dependencies": {
|
||||
"collect.js": "^4.20.3",
|
||||
"prosemirror-example-setup": "^1.1.2",
|
||||
"prosemirror-commands": "^1.1.3",
|
||||
"prosemirror-dropcursor": "^1.3.2",
|
||||
"prosemirror-gapcursor": "^1.1.3",
|
||||
"prosemirror-inputrules": "^1.1.2",
|
||||
"prosemirror-keymap": "^1.1.3",
|
||||
"prosemirror-model": "^1.9.1",
|
||||
"prosemirror-schema-basic": "^1.1.2",
|
||||
"prosemirror-schema-list": "^1.1.2",
|
||||
"prosemirror-state": "^1.3.2",
|
||||
"prosemirror-view": "^1.14.2"
|
||||
}
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
import {EditorState, TextSelection, Plugin} from "prosemirror-state"
|
||||
import {EditorView} from "prosemirror-view"
|
||||
import {Schema, DOMParser, DOMSerializer} from "prosemirror-model"
|
||||
import { inputRules, undoInputRule } from 'prosemirror-inputrules'
|
||||
import { keymap } from 'prosemirror-keymap'
|
||||
import { baseKeymap } from 'prosemirror-commands'
|
||||
// @ts-ignore
|
||||
import {exampleSetup} from "prosemirror-example-setup"
|
||||
import { dropCursor } from 'prosemirror-dropcursor'
|
||||
// @ts-ignore
|
||||
import { gapCursor } from 'prosemirror-gapcursor'
|
||||
|
||||
import elementFromString from './utils/elementFromString'
|
||||
import injectCSS from './utils/injectCSS'
|
||||
@@ -59,13 +64,21 @@ export class Editor {
|
||||
})
|
||||
}
|
||||
|
||||
private get plugins() {
|
||||
return [
|
||||
...this.extensionManager.plugins,
|
||||
keymap({ Backspace: undoInputRule }),
|
||||
keymap(baseKeymap),
|
||||
dropCursor(),
|
||||
gapCursor(),
|
||||
]
|
||||
}
|
||||
|
||||
private createView() {
|
||||
this.view = new EditorView(this.options.element, {
|
||||
state: EditorState.create({
|
||||
doc: this.createDocument(this.options.content),
|
||||
plugins: [
|
||||
...exampleSetup({schema: this.schema}),
|
||||
],
|
||||
plugins: this.plugins,
|
||||
}),
|
||||
dispatchTransaction: this.dispatchTransaction.bind(this),
|
||||
})
|
||||
|
||||
@@ -28,4 +28,10 @@ export default class ExtensionManager {
|
||||
.all()
|
||||
}
|
||||
|
||||
get plugins(): any {
|
||||
return collect(this.extensions)
|
||||
.flatMap(extension => extension.plugins)
|
||||
.toArray()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user