/** * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved. * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license */ /** * @module clipboard/utils/plaintexttohtml */ /** * Converts plain text to its HTML-ized version. * * @param {String} text The plain text to convert. * @returns {String} HTML generated from the plain text. */ export default function plainTextToHtml( text ) { text = text // Encode <>. .replace( //g, '>' ) // Creates paragraphs for double line breaks and change single line breaks to
s. .replace( /\n\n/g, '

' ) .replace( /\n/g, '
' ) // Preserve trailing spaces (only the first and last one – the rest is handled below). .replace( /^\s/, ' ' ) .replace( /\s$/, ' ' ) // Preserve other subsequent spaces now. .replace( /\s\s/g, '  ' ); if ( text.indexOf( '

' ) > -1 ) { // If we created paragraphs above, add the trailing ones. text = `

${ text }

`; } // TODO: // * What about '\nfoo' vs ' foo'? return text; }