mirror of
https://github.com/fastmail/Squire.git
synced 2024-12-22 07:13:08 -05:00
Be more careful about splitting nodes to remove <br>s.
Can't split an <li> to remove a <br>.
This commit is contained in:
parent
1fac17b514
commit
afd3e9807c
3 changed files with 28 additions and 16 deletions
|
@ -2548,17 +2548,23 @@ var cleanupBRs = function ( root ) {
|
|||
block = block.parentNode;
|
||||
}
|
||||
// If this is not inside a block, replace it by wrapping
|
||||
// inlines in DIV.
|
||||
if ( !isBlock( block ) || !tagAfterSplit[ block.nodeName ] ) {
|
||||
// inlines in a <div>.
|
||||
if ( !isBlock( block ) ) {
|
||||
fixContainer( block );
|
||||
}
|
||||
// If in a block we can split, split it instead, but only if there
|
||||
// is actual text content in the block. Otherwise, the <br> is a
|
||||
// placeholder to stop the block from collapsing, so we must leave
|
||||
// it.
|
||||
else {
|
||||
// If it doesn't break a line, just remove it; it's not doing
|
||||
// anything useful. We'll add it back later if required by the
|
||||
// browser. If it breaks a line, split the block or leave it as
|
||||
// appropriate.
|
||||
if ( brBreaksLine[l] ) {
|
||||
splitBlock( block, br.parentNode, br );
|
||||
// If in a <div>, split, but anywhere else we might change
|
||||
// the formatting too much (e.g. <li> -> to two list items!)
|
||||
// so just play it safe and leave it.
|
||||
if ( block.nodeName !== 'DIV' ) {
|
||||
continue;
|
||||
}
|
||||
split( br.parentNode, br, block.parentNode );
|
||||
}
|
||||
detach( br );
|
||||
}
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1435,17 +1435,23 @@ var cleanupBRs = function ( root ) {
|
|||
block = block.parentNode;
|
||||
}
|
||||
// If this is not inside a block, replace it by wrapping
|
||||
// inlines in DIV.
|
||||
if ( !isBlock( block ) || !tagAfterSplit[ block.nodeName ] ) {
|
||||
// inlines in a <div>.
|
||||
if ( !isBlock( block ) ) {
|
||||
fixContainer( block );
|
||||
}
|
||||
// If in a block we can split, split it instead, but only if there
|
||||
// is actual text content in the block. Otherwise, the <br> is a
|
||||
// placeholder to stop the block from collapsing, so we must leave
|
||||
// it.
|
||||
else {
|
||||
// If it doesn't break a line, just remove it; it's not doing
|
||||
// anything useful. We'll add it back later if required by the
|
||||
// browser. If it breaks a line, split the block or leave it as
|
||||
// appropriate.
|
||||
if ( brBreaksLine[l] ) {
|
||||
splitBlock( block, br.parentNode, br );
|
||||
// If in a <div>, split, but anywhere else we might change
|
||||
// the formatting too much (e.g. <li> -> to two list items!)
|
||||
// so just play it safe and leave it.
|
||||
if ( block.nodeName !== 'DIV' ) {
|
||||
continue;
|
||||
}
|
||||
split( br.parentNode, br, block.parentNode );
|
||||
}
|
||||
detach( br );
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue