diff --git a/ghost/admin/lib/koenig-editor/addon/components/koenig-editor.js b/ghost/admin/lib/koenig-editor/addon/components/koenig-editor.js index b1afb5234c..ccc8601eb9 100644 --- a/ghost/admin/lib/koenig-editor/addon/components/koenig-editor.js +++ b/ghost/admin/lib/koenig-editor/addon/components/koenig-editor.js @@ -661,6 +661,40 @@ export default Component.extend({ editor.triggerEvent(editor.element, 'paste', pasteEvent); } + + // we need to standardise HTML here because parserPlugins do not get + // passed inline markup such as `` or `` + if (html) { + // prevent mobiledoc's default paste event handler firing + event.preventDefault(); + event.stopImmediatePropagation(); + + let normalizedHtml = html + .replace(/)/gi, '/gi, '') + .replace(/)/gi, '/gi, ''); + + // we can't modify the paste event itself so we trigger a mock + // paste event with our own data + let pasteEvent = { + type: 'paste', + preventDefault() {}, + target: editor.element, + clipboardData: { + getData(type) { + if (type === 'text/plain') { + return text; + } + if (type === 'text/html') { + return normalizedHtml; + } + } + } + }; + + editor.triggerEvent(editor.element, 'paste', pasteEvent); + } }, /* Ember event handlers ------------------------------------------------- */