docs: function htmlifiedTextHtmlification( config, data ) {
  		function repeatParagraphs( repeats ) {
  			// Repeat blocks floor((n+1)/2) times.
  			// Even number of repeats - add <br> at the beginning of last <p>.
  			return CKEDITOR.tools.repeat( '</p><p>', ~~ ( repeats / 2 ) ) + ( repeats % 2 == 1 ? '<br>' : '' );
  		}
  
  			// Replace adjacent white-spaces (EOLs too - Fx sometimes keeps them) with one space.
  		data = data.replace( /\s+/g, ' ' )
  			// Remove spaces from between tags.
  			.replace( /> +</g, '><' )
  			// Normalize XHTML syntax and upper cased <br> tags.
  			.replace( /<br ?\/>/gi, '<br>' );
  
  		// IE - lower cased tags.
  		data = data.replace( /<\/?[A-Z]+>/g, function( match ) {
  			return match.toLowerCase();
  		} );
  
  		// Don't touch single lines (no <br|p|div>) - nothing to do here.
  		if ( data.match( /^[^<]$/ ) )
  			return data;
  
  		// Webkit.
  		if ( CKEDITOR.env.webkit && data.indexOf( '<div>' ) > -1 ) {
  				// One line break at the beginning - insert <br>
  			data = data.replace( /^(<div>(<br>|)<\/div>)(?!$|(<div>(<br>|)<\/div>))/g, '<br>' )
  				// Two or more - reduce number of new lines by one.
  				.replace( /^(<div>(<br>|)<\/div>){2}(?!$)/g, '<div></div>' );
  
  			// Two line breaks create one paragraph in Webkit.
  			if ( data.match( /<div>(<br>|)<\/div>/ ) ) {
  				data = '<p>' + data.replace( /(<div>(<br>|)<\/div>)+/g, function( match ) {
  					return repeatParagraphs( match.split( '</div><div>' ).length + 1 );
  				} ) + '</p>';
  			}
  
  			// One line break create br.
  			data = data.replace( /<\/div><div>/g, '<br>' );
  
  			// Remove remaining divs.
  			data = data.replace( /<\/?div>/g, '' );
  		}
  
  		// Opera and Firefox and enterMode != BR.
  		if ( CKEDITOR.env.gecko && config.enterMode != CKEDITOR.ENTER_BR ) {
  			// Remove bogus <br> - Fx generates two <brs> for one line break.
  			// For two line breaks it still produces two <brs>, but it's better to ignore this case than the first one.
  			if ( CKEDITOR.env.gecko )
  				data = data.replace( /^<br><br>$/, '<br>' );
  
  			// This line satisfy edge case when for Opera we have two line breaks
  			//data = data.replace( /)
  
  			if ( data.indexOf( '<br><br>' ) > -1 ) {
  				// Two line breaks create one paragraph, three - 2, four - 3, etc.
  				data = '<p>' + data.replace( /(<br>){2,}/g, function( match ) {
  					return repeatParagraphs( match.length / 4 );
  				} ) + '</p>';
  			}
  		}
  
  		return switchEnterMode( config, data );
  	}