| 1234567891011121314151617181920212223242526272829303132333435363738 |
- /**
- * @license Copyright (c) 2003-2020, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
- */
- /**
- * @module word-count/utils
- */
- /**
- * Returns a plain text representation of an element and its children.
- *
- * @param {module:engine/model/element~Element} element
- * @returns {String} Plain text representing the model's data.
- */
- export function modelElementToPlainText( element ) {
- if ( element.is( 'text' ) || element.is( 'textProxy' ) ) {
- return element.data;
- }
- let text = '';
- let prev = null;
- for ( const child of element.getChildren() ) {
- const childText = modelElementToPlainText( child );
- // If last block was finish, start from new line.
- if ( prev && prev.is( 'element' ) ) {
- text += '\n';
- }
- text += childText;
- prev = child;
- }
- return text;
- }
|