export extended editor for vue

This commit is contained in:
Philipp Kühn
2020-08-18 10:06:08 +02:00
parent 8c0008bbad
commit e471c7efd2
6 changed files with 15 additions and 13 deletions

View File

@@ -3,9 +3,7 @@
</template> </template>
<script> <script>
import { Editor } from '@tiptap/core' import { Editor, EditorContent, defaultExtensions } from '@tiptap/vue-starter-kit'
import { EditorContent, Renderer } from '@tiptap/vue-starter-kit'
import extensions from '@tiptap/starter-kit'
export default { export default {
components: { components: {
@@ -21,8 +19,7 @@ export default {
mounted() { mounted() {
this.editor = new Editor({ this.editor = new Editor({
content: '<p>foo</p>', content: '<p>foo</p>',
extensions: extensions(), extensions: defaultExtensions(),
renderer: Renderer,
}) })
window.editor = this.editor window.editor = this.editor

View File

@@ -5,8 +5,7 @@
</template> </template>
<script> <script>
import { Editor } from '@tiptap/core' import { Editor, EditorContent } from '@tiptap/vue'
import { EditorContent, Renderer } from '@tiptap/vue'
import Document from '@tiptap/extension-document' import Document from '@tiptap/extension-document'
import Paragraph from '@tiptap/extension-paragraph' import Paragraph from '@tiptap/extension-paragraph'
import Text from '@tiptap/extension-text' import Text from '@tiptap/extension-text'
@@ -32,7 +31,6 @@ export default {
new Text(), new Text(),
new Bold(), new Bold(),
], ],
renderer: Renderer,
}) })
}, },

View File

@@ -1,3 +1,4 @@
export default abstract class ComponentRenderer { export default abstract class ComponentRenderer {
} }

View File

@@ -20,6 +20,7 @@ import Extension from './Extension'
import Node from './Node' import Node from './Node'
import Mark from './Mark' import Mark from './Mark'
import EventEmitter from './EventEmitter' import EventEmitter from './EventEmitter'
import ComponentRenderer from './ComponentRenderer'
export type Command = (next: Function, editor: Editor) => (...args: any) => any export type Command = (next: Function, editor: Editor) => (...args: any) => any
@@ -34,13 +35,13 @@ interface EditorOptions {
content: EditorContent content: EditorContent
extensions: (Extension | Node | Mark)[] extensions: (Extension | Node | Mark)[]
injectCSS: Boolean, injectCSS: Boolean,
renderer: any,
} }
@magicMethods @magicMethods
export class Editor extends EventEmitter { export class Editor extends EventEmitter {
private proxy!: any public renderer!: any
private proxy!: Editor
private extensionManager!: ExtensionManager private extensionManager!: ExtensionManager
private commands: { [key: string]: any } = {} private commands: { [key: string]: any } = {}
private css!: HTMLStyleElement private css!: HTMLStyleElement
@@ -53,7 +54,6 @@ export class Editor extends EventEmitter {
content: '', content: '',
injectCSS: true, injectCSS: true,
extensions: [], extensions: [],
renderer: null,
} }
constructor(options: Partial<EditorOptions> = {}) { constructor(options: Partial<EditorOptions> = {}) {

View File

@@ -90,7 +90,7 @@ export default class ExtensionManager {
} }
get nodeViews() { get nodeViews() {
const { renderer: Renderer } = this.editor.options const { renderer: Renderer } = this.editor
if (!Renderer || !Renderer.type) { if (!Renderer || !Renderer.type) {
return {} return {}

View File

@@ -1,3 +1,9 @@
import { Editor as CoreEditor } from '@tiptap/core'
import Renderer from './src/Renderer'
export * from '@tiptap/core' export * from '@tiptap/core'
export { default as EditorContent } from './src/components/EditorContent' export { default as EditorContent } from './src/components/EditorContent'
export { default as Renderer } from './src/Renderer'
export class Editor extends CoreEditor {
renderer = Renderer
}