UNPKG

@ckeditor/ckeditor5-clipboard

Version:

Clipboard integration feature for CKEditor 5.

28 lines (27 loc) 1.09 kB
/** * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved. * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options */ /** * @module clipboard/utils/normalizeclipboarddata */ /** * Removes some popular browser quirks out of the clipboard data (HTML). * Removes all HTML comments. These are considered an internal thing and it makes little sense if they leak into the editor data. * * @param data The HTML data to normalize. * @returns Normalized HTML. */ export default function normalizeClipboardData(data) { return data .replace(/<span(?: class="Apple-converted-space"|)>(\s+)<\/span>/g, (fullMatch, spaces) => { // Handle the most popular and problematic case when even a single space becomes an nbsp;. // Decode those to normal spaces. Read more in https://github.com/ckeditor/ckeditor5-clipboard/issues/2. if (spaces.length == 1) { return ' '; } return spaces; }) // Remove all HTML comments. .replace(/<!--[\s\S]*?-->/g, ''); }