/**
* @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; }