From 027a4db452f595733e97b7767f817db426227666 Mon Sep 17 00:00:00 2001 From: Chrissi2812 Date: Thu, 31 Jan 2019 15:11:16 +0100 Subject: [PATCH] added pasteRules to marks --- packages/tiptap-extensions/src/marks/Bold.js | 8 +++++++- packages/tiptap-extensions/src/marks/Code.js | 8 +++++++- packages/tiptap-extensions/src/marks/Italic.js | 8 +++++++- packages/tiptap-extensions/src/marks/Strike.js | 8 +++++++- packages/tiptap/src/Editor.js | 3 +++ 5 files changed, 31 insertions(+), 4 deletions(-) diff --git a/packages/tiptap-extensions/src/marks/Bold.js b/packages/tiptap-extensions/src/marks/Bold.js index 275426db..937df5b8 100644 --- a/packages/tiptap-extensions/src/marks/Bold.js +++ b/packages/tiptap-extensions/src/marks/Bold.js @@ -1,5 +1,5 @@ import { Mark } from 'tiptap' -import { toggleMark, markInputRule } from 'tiptap-commands' +import { toggleMark, markInputRule, markPasteRule } from 'tiptap-commands' export default class Bold extends Mark { @@ -42,4 +42,10 @@ export default class Bold extends Mark { ] } + pasteRules({ type }) { + return [ + markPasteRule(/(?:\*\*|__)([^*_]+)(?:\*\*|__)/g, type), + ] + } + } diff --git a/packages/tiptap-extensions/src/marks/Code.js b/packages/tiptap-extensions/src/marks/Code.js index 7d7dfa98..29522c26 100644 --- a/packages/tiptap-extensions/src/marks/Code.js +++ b/packages/tiptap-extensions/src/marks/Code.js @@ -1,5 +1,5 @@ import { Mark } from 'tiptap' -import { toggleMark, markInputRule } from 'tiptap-commands' +import { toggleMark, markInputRule, markPasteRule } from 'tiptap-commands' export default class Code extends Mark { @@ -32,4 +32,10 @@ export default class Code extends Mark { ] } + pasteRules({ type }) { + return [ + markPasteRule(/(?:`)([^`]+)(?:`)/g, type), + ] + } + } diff --git a/packages/tiptap-extensions/src/marks/Italic.js b/packages/tiptap-extensions/src/marks/Italic.js index a69a731c..e3d79e75 100644 --- a/packages/tiptap-extensions/src/marks/Italic.js +++ b/packages/tiptap-extensions/src/marks/Italic.js @@ -1,5 +1,5 @@ import { Mark } from 'tiptap' -import { toggleMark, markInputRule } from 'tiptap-commands' +import { toggleMark, markInputRule, markPasteRule } from 'tiptap-commands' export default class Italic extends Mark { @@ -34,4 +34,10 @@ export default class Italic extends Mark { ] } + pasteRules({ type }) { + return [ + markPasteRule(/(?:^|[^*_])(?:\*|_)([^*_]+)(?:\*|_)/g, type), + ] + } + } diff --git a/packages/tiptap-extensions/src/marks/Strike.js b/packages/tiptap-extensions/src/marks/Strike.js index 79fd0f46..7734fa14 100644 --- a/packages/tiptap-extensions/src/marks/Strike.js +++ b/packages/tiptap-extensions/src/marks/Strike.js @@ -1,5 +1,5 @@ import { Mark } from 'tiptap' -import { toggleMark, markInputRule } from 'tiptap-commands' +import { toggleMark, markInputRule, markPasteRule } from 'tiptap-commands' export default class Strike extends Mark { @@ -44,4 +44,10 @@ export default class Strike extends Mark { ] } + pasteRules({ type }) { + return [ + markPasteRule(/~([^~]+)~/g, type), + ] + } + } diff --git a/packages/tiptap/src/Editor.js b/packages/tiptap/src/Editor.js index 95cc4586..20f89d5e 100644 --- a/packages/tiptap/src/Editor.js +++ b/packages/tiptap/src/Editor.js @@ -31,6 +31,7 @@ export default class Editor { onUpdate: () => {}, onFocus: () => {}, onBlur: () => {}, + onPaste: () => {}, } this.init(options) @@ -198,6 +199,8 @@ export default class Editor { createView() { const view = new EditorView(this.element, { state: this.state, + handlePaste: this.options.onPaste, + handleDrop: this.options.onPaste, dispatchTransaction: this.dispatchTransaction.bind(this), })