public/ckeditor/4.4dev/core/filter.js
function stripBlock( element, enterTag, toBeChecked ) {
		var children = element.children;

		// First, check if element's children may be wrapped with <p/div>.
		// Ignore that <p/div> may not be allowed in element.parent.
		// This will be fixed when removing parent or by toBeChecked rule.
		if ( checkChildren( children, enterTag ) ) {
			element.name = enterTag;
			element.attributes = {};
			// Check if this p/div was put in correct context.
			// If not - strip parent.
			toBeChecked.push( { check: 'parent-down', el: element } );
			return;
		}

		var parent = element.parent,
			shouldAutoP = parent.type == CKEDITOR.NODE_DOCUMENT_FRAGMENT || parent.name == 'body',
			i, child, p;

		for ( i = children.length; i > 0; ) {
			child = children[ --i ];

			// If parent requires auto paragraphing and child is inline node,
			// insert this child into newly created paragraph.
			if ( shouldAutoP && inlineNode( child )  ) {
				if ( !p ) {
					p = new CKEDITOR.htmlParser.element( enterTag );
					p.insertAfter( element );

					// Check if this p/div was put in correct context.
					// If not - strip parent.
					toBeChecked.push( { check: 'parent-down', el: p } );
				}
				p.add( child, 0 );
			}
			// Child which doesn't need to be auto paragraphed.
			else {
				p = null;
				child.insertAfter( element );
				// If inserted into invalid context, mark it and check
				// after removing all elements.
				if ( parent.type != CKEDITOR.NODE_DOCUMENT_FRAGMENT &&
					child.type == CKEDITOR.NODE_ELEMENT &&
					!DTD[ parent.name ][ child.name ]
				)
					toBeChecked.push( { check: 'el-up', el: child } );
			}
		}

		// All children have been moved to element's parent, so remove it.
		element.remove();
	}
function stripBlock( element, enterTag, toBeChecked ) {
		var children = element.children;

		// First, check if element's children may be wrapped with <p/div>.
		// Ignore that <p/div> may not be allowed in element.parent.
		// This will be fixed when removing parent or by toBeChecked rule.
		if ( checkChildren( children, enterTag ) ) {
			element.name = enterTag;
			element.attributes = {};
			// Check if this p/div was put in correct context.
			// If not - strip parent.
			toBeChecked.push( { check: 'parent-down', el: element } );
			return;
		}

		var parent = element.parent,
			shouldAutoP = parent.type == CKEDITOR.NODE_DOCUMENT_FRAGMENT || parent.name == 'body',
			i, child, p;

		for ( i = children.length; i > 0; ) {
			child = children[ --i ];

			// If parent requires auto paragraphing and child is inline node,
			// insert this child into newly created paragraph.
			if ( shouldAutoP && inlineNode( child )  ) {
				if ( !p ) {
					p = new CKEDITOR.htmlParser.element( enterTag );
					p.insertAfter( element );

					// Check if this p/div was put in correct context.
					// If not - strip parent.
					toBeChecked.push( { check: 'parent-down', el: p } );
				}
				p.add( child, 0 );
			}
			// Child which doesn't need to be auto paragraphed.
			else {
				p = null;
				child.insertAfter( element );
				// If inserted into invalid context, mark it and check
				// after removing all elements.
				if ( parent.type != CKEDITOR.NODE_DOCUMENT_FRAGMENT &&
					child.type == CKEDITOR.NODE_ELEMENT &&
					!DTD[ parent.name ][ child.name ]
				)
					toBeChecked.push( { check: 'el-up', el: child } );
			}
		}

		// All children have been moved to element's parent, so remove it.
		element.remove();
	}
function stripBlock ( element , enterTag , toBeChecked ) { var children = element . children ; // First, check if element's children may be wrapped with <p/div>. // Ignore that <p/div> may not be allowed in element.parent. // This will be fixed when removing parent or by toBeChecked rule. if ( checkChildren ( children , enterTag ) ) { element . name = enterTag ; element . attributes = { } ; // Check if this p/div was put in correct context. // If not - strip parent. toBeChecked . push ( { check : 'parent-down' , el : element } ) ; return ; } var parent = element . parent , shouldAutoP = parent . type == CKEDITOR . NODE_DOCUMENT_FRAGMENT || parent . name == 'body' , i , child , p ; for ( i = children . length ; i > 0 ; ) { child = children [ -- i ] ; // If parent requires auto paragraphing and child is inline node, // insert this child into newly created paragraph. if ( shouldAutoP && inlineNode ( child ) ) { if ( ! p ) { p = new CKEDITOR . htmlParser . element ( enterTag ) ; p . insertAfter ( element ) ; // Check if this p/div was put in correct context. // If not - strip parent. toBeChecked . push ( { check : 'parent-down' , el : p } ) ; } p . add ( child , 0 ) ; } // Child which doesn't need to be auto paragraphed. else { p = null ; child . insertAfter ( element ) ; // If inserted into invalid context, mark it and check // after removing all elements. if ( parent . type != CKEDITOR . NODE_DOCUMENT_FRAGMENT && child . type == CKEDITOR . NODE_ELEMENT && ! DTD [ parent . name ] [ child . name ] ) toBeChecked . push ( { check : 'el-up' , el : child } ) ; } } // All children have been moved to element's parent, so remove it. element . remove ( ) ; }
Strip element block, but leave its content. Works in 'div' and 'p' enter modes.
Strip element block but leave its content . Works in div and p enter modes .