From 1de45acef5ba41833c90fbb924ff2603f855ccb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Ku=CC=88hn?= Date: Mon, 27 Aug 2018 21:53:12 +0200 Subject: [PATCH] fix em input rule --- .../tiptap-commands/src/commands/markInputRule.js | 11 ++++++++--- packages/tiptap-extensions/src/marks/Italic.js | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/tiptap-commands/src/commands/markInputRule.js b/packages/tiptap-commands/src/commands/markInputRule.js index 78f16a53..02f21272 100644 --- a/packages/tiptap-commands/src/commands/markInputRule.js +++ b/packages/tiptap-commands/src/commands/markInputRule.js @@ -6,11 +6,16 @@ export default function (regexp, markType, getAttrs) { let tr = state.tr if (match[1]) { + const startSpaces = match[0].search(/\S/) let textStart = start + match[0].indexOf(match[1]) let textEnd = textStart + match[1].length - if (textEnd < end) tr.delete(textEnd, end) - if (textStart > start) tr.delete(start, textStart) - end = start + match[1].length + if (textEnd < end) { + tr.delete(textEnd, end) + } + if (textStart > start) { + tr.delete(start + startSpaces, textStart) + } + end = start + startSpaces + match[1].length } tr.addMark(start, end, markType.create(attrs)) diff --git a/packages/tiptap-extensions/src/marks/Italic.js b/packages/tiptap-extensions/src/marks/Italic.js index 47385087..6a513f37 100644 --- a/packages/tiptap-extensions/src/marks/Italic.js +++ b/packages/tiptap-extensions/src/marks/Italic.js @@ -30,7 +30,7 @@ export default class ItalicMark extends Mark { inputRules({ type }) { return [ - markInputRule(/(?:\*|_)([^\*_]+)(?:\*|_)$/, type), + markInputRule(/(?:^|[^\*_])(?:\*|_)([^\*_]+)(?:\*|_)$/, type), ] }