mirror of
https://github.com/fastmail/Squire.git
synced 2025-01-03 05:00:13 -05:00
Fix cleanup of white space
This commit is contained in:
parent
bac7c5d2cc
commit
230520645b
3 changed files with 11 additions and 19 deletions
|
@ -1840,7 +1840,7 @@ var walker = new TreeWalker( null, SHOW_TEXT|SHOW_ELEMENT, function () {
|
||||||
and whitespace nodes.
|
and whitespace nodes.
|
||||||
2. Convert inline tags into our preferred format.
|
2. Convert inline tags into our preferred format.
|
||||||
*/
|
*/
|
||||||
var cleanTree = function cleanTree ( node ) {
|
var cleanTree = function cleanTree ( node, preserveWS ) {
|
||||||
var children = node.childNodes,
|
var children = node.childNodes,
|
||||||
nonInlineParent, i, l, child, nodeName, nodeType, rewriter, childLength,
|
nonInlineParent, i, l, child, nodeName, nodeType, rewriter, childLength,
|
||||||
startsWithWS, endsWithWS, data, sibling;
|
startsWithWS, endsWithWS, data, sibling;
|
||||||
|
@ -1872,14 +1872,14 @@ var cleanTree = function cleanTree ( node ) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if ( childLength ) {
|
if ( childLength ) {
|
||||||
cleanTree( child );
|
cleanTree( child, preserveWS || ( nodeName === 'PRE' ) );
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if ( nodeType === TEXT_NODE ) {
|
if ( nodeType === TEXT_NODE ) {
|
||||||
data = child.data;
|
data = child.data;
|
||||||
startsWithWS = !notWS.test( data.charAt( 0 ) );
|
startsWithWS = !notWS.test( data.charAt( 0 ) );
|
||||||
endsWithWS = !notWS.test( data.charAt( data.length - 1 ) );
|
endsWithWS = !notWS.test( data.charAt( data.length - 1 ) );
|
||||||
if ( !startsWithWS && !endsWithWS ) {
|
if ( preserveWS || ( !startsWithWS && !endsWithWS ) ) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// Iterate through the nodes; if we hit some other content
|
// Iterate through the nodes; if we hit some other content
|
||||||
|
@ -1898,9 +1898,7 @@ var cleanTree = function cleanTree ( node ) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( !sibling ) {
|
data = data.replace( /^\s+/g, sibling ? ' ' : '' );
|
||||||
data = data.replace( /^\s+/g, '' );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if ( endsWithWS ) {
|
if ( endsWithWS ) {
|
||||||
walker.currentNode = child;
|
walker.currentNode = child;
|
||||||
|
@ -1915,9 +1913,7 @@ var cleanTree = function cleanTree ( node ) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( !sibling ) {
|
data = data.replace( /\s+$/g, sibling ? ' ' : '' );
|
||||||
data = data.replace( /^\s+/g, '' );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if ( data ) {
|
if ( data ) {
|
||||||
child.data = data;
|
child.data = data;
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -178,7 +178,7 @@ var walker = new TreeWalker( null, SHOW_TEXT|SHOW_ELEMENT, function () {
|
||||||
and whitespace nodes.
|
and whitespace nodes.
|
||||||
2. Convert inline tags into our preferred format.
|
2. Convert inline tags into our preferred format.
|
||||||
*/
|
*/
|
||||||
var cleanTree = function cleanTree ( node ) {
|
var cleanTree = function cleanTree ( node, preserveWS ) {
|
||||||
var children = node.childNodes,
|
var children = node.childNodes,
|
||||||
nonInlineParent, i, l, child, nodeName, nodeType, rewriter, childLength,
|
nonInlineParent, i, l, child, nodeName, nodeType, rewriter, childLength,
|
||||||
startsWithWS, endsWithWS, data, sibling;
|
startsWithWS, endsWithWS, data, sibling;
|
||||||
|
@ -210,14 +210,14 @@ var cleanTree = function cleanTree ( node ) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if ( childLength ) {
|
if ( childLength ) {
|
||||||
cleanTree( child );
|
cleanTree( child, preserveWS || ( nodeName === 'PRE' ) );
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if ( nodeType === TEXT_NODE ) {
|
if ( nodeType === TEXT_NODE ) {
|
||||||
data = child.data;
|
data = child.data;
|
||||||
startsWithWS = !notWS.test( data.charAt( 0 ) );
|
startsWithWS = !notWS.test( data.charAt( 0 ) );
|
||||||
endsWithWS = !notWS.test( data.charAt( data.length - 1 ) );
|
endsWithWS = !notWS.test( data.charAt( data.length - 1 ) );
|
||||||
if ( !startsWithWS && !endsWithWS ) {
|
if ( preserveWS || ( !startsWithWS && !endsWithWS ) ) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// Iterate through the nodes; if we hit some other content
|
// Iterate through the nodes; if we hit some other content
|
||||||
|
@ -236,9 +236,7 @@ var cleanTree = function cleanTree ( node ) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( !sibling ) {
|
data = data.replace( /^\s+/g, sibling ? ' ' : '' );
|
||||||
data = data.replace( /^\s+/g, '' );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if ( endsWithWS ) {
|
if ( endsWithWS ) {
|
||||||
walker.currentNode = child;
|
walker.currentNode = child;
|
||||||
|
@ -253,9 +251,7 @@ var cleanTree = function cleanTree ( node ) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( !sibling ) {
|
data = data.replace( /\s+$/g, sibling ? ' ' : '' );
|
||||||
data = data.replace( /^\s+/g, '' );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if ( data ) {
|
if ( data ) {
|
||||||
child.data = data;
|
child.data = data;
|
||||||
|
|
Loading…
Reference in a new issue