mirror of
https://github.com/fastmail/Squire.git
synced 2024-12-22 15:23:29 -05:00
Cleanup P and Underline tags
node.
This commit is contained in:
parent
8b580ed988
commit
9dcc4fb79f
3 changed files with 78 additions and 48 deletions
|
@ -1690,7 +1690,7 @@ var fontSizes = {
|
|||
7: 48
|
||||
};
|
||||
|
||||
var spanToSemantic = {
|
||||
var styleToSemantic = {
|
||||
backgroundColor: {
|
||||
regexp: notWS,
|
||||
replace: function ( doc, colour ) {
|
||||
|
@ -1738,6 +1738,12 @@ var spanToSemantic = {
|
|||
style: 'font-size:' + size
|
||||
});
|
||||
}
|
||||
},
|
||||
textDecoration: {
|
||||
regexp: /^underline/i,
|
||||
replace: function ( doc ) {
|
||||
return createElement( doc, 'U' );
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -1750,36 +1756,45 @@ var replaceWithTag = function ( tag ) {
|
|||
};
|
||||
};
|
||||
|
||||
var stylesRewriters = {
|
||||
SPAN: function ( span, parent ) {
|
||||
var style = span.style,
|
||||
doc = span.ownerDocument,
|
||||
attr, converter, css, newTreeBottom, newTreeTop, el;
|
||||
var replaceStyles = function ( node, parent ) {
|
||||
var style = node.style;
|
||||
var doc = node.ownerDocument;
|
||||
var attr, converter, css, newTreeBottom, newTreeTop, el;
|
||||
|
||||
for ( attr in spanToSemantic ) {
|
||||
converter = spanToSemantic[ attr ];
|
||||
for ( attr in styleToSemantic ) {
|
||||
converter = styleToSemantic[ attr ];
|
||||
css = style[ attr ];
|
||||
if ( css && converter.regexp.test( css ) ) {
|
||||
el = converter.replace( doc, css );
|
||||
if ( !newTreeTop ) {
|
||||
newTreeTop = el;
|
||||
}
|
||||
if ( newTreeBottom ) {
|
||||
newTreeBottom.appendChild( el );
|
||||
}
|
||||
newTreeBottom = el;
|
||||
if ( !newTreeTop ) {
|
||||
newTreeTop = el;
|
||||
}
|
||||
node.style[ attr ] = '';
|
||||
}
|
||||
}
|
||||
|
||||
if ( newTreeTop ) {
|
||||
newTreeBottom.appendChild( empty( span ) );
|
||||
parent.replaceChild( newTreeTop, span );
|
||||
newTreeBottom.appendChild( empty( node ) );
|
||||
if ( node.nodeName === 'SPAN' ) {
|
||||
parent.replaceChild( newTreeTop, node );
|
||||
} else {
|
||||
node.appendChild( newTreeTop );
|
||||
}
|
||||
}
|
||||
|
||||
return newTreeBottom || span;
|
||||
},
|
||||
return newTreeBottom || node;
|
||||
};
|
||||
|
||||
var stylesRewriters = {
|
||||
P: replaceStyles,
|
||||
SPAN: replaceStyles,
|
||||
STRONG: replaceWithTag( 'B' ),
|
||||
EM: replaceWithTag( 'I' ),
|
||||
INS: replaceWithTag( 'U' ),
|
||||
STRIKE: replaceWithTag( 'S' ),
|
||||
FONT: function ( node, parent ) {
|
||||
var face = node.face,
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -10,7 +10,7 @@ var fontSizes = {
|
|||
7: 48
|
||||
};
|
||||
|
||||
var spanToSemantic = {
|
||||
var styleToSemantic = {
|
||||
backgroundColor: {
|
||||
regexp: notWS,
|
||||
replace: function ( doc, colour ) {
|
||||
|
@ -58,6 +58,12 @@ var spanToSemantic = {
|
|||
style: 'font-size:' + size
|
||||
});
|
||||
}
|
||||
},
|
||||
textDecoration: {
|
||||
regexp: /^underline/i,
|
||||
replace: function ( doc ) {
|
||||
return createElement( doc, 'U' );
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -70,36 +76,45 @@ var replaceWithTag = function ( tag ) {
|
|||
};
|
||||
};
|
||||
|
||||
var stylesRewriters = {
|
||||
SPAN: function ( span, parent ) {
|
||||
var style = span.style,
|
||||
doc = span.ownerDocument,
|
||||
attr, converter, css, newTreeBottom, newTreeTop, el;
|
||||
var replaceStyles = function ( node, parent ) {
|
||||
var style = node.style;
|
||||
var doc = node.ownerDocument;
|
||||
var attr, converter, css, newTreeBottom, newTreeTop, el;
|
||||
|
||||
for ( attr in spanToSemantic ) {
|
||||
converter = spanToSemantic[ attr ];
|
||||
for ( attr in styleToSemantic ) {
|
||||
converter = styleToSemantic[ attr ];
|
||||
css = style[ attr ];
|
||||
if ( css && converter.regexp.test( css ) ) {
|
||||
el = converter.replace( doc, css );
|
||||
if ( !newTreeTop ) {
|
||||
newTreeTop = el;
|
||||
}
|
||||
if ( newTreeBottom ) {
|
||||
newTreeBottom.appendChild( el );
|
||||
}
|
||||
newTreeBottom = el;
|
||||
if ( !newTreeTop ) {
|
||||
newTreeTop = el;
|
||||
}
|
||||
node.style[ attr ] = '';
|
||||
}
|
||||
}
|
||||
|
||||
if ( newTreeTop ) {
|
||||
newTreeBottom.appendChild( empty( span ) );
|
||||
parent.replaceChild( newTreeTop, span );
|
||||
newTreeBottom.appendChild( empty( node ) );
|
||||
if ( node.nodeName === 'SPAN' ) {
|
||||
parent.replaceChild( newTreeTop, node );
|
||||
} else {
|
||||
node.appendChild( newTreeTop );
|
||||
}
|
||||
}
|
||||
|
||||
return newTreeBottom || span;
|
||||
},
|
||||
return newTreeBottom || node;
|
||||
};
|
||||
|
||||
var stylesRewriters = {
|
||||
P: replaceStyles,
|
||||
SPAN: replaceStyles,
|
||||
STRONG: replaceWithTag( 'B' ),
|
||||
EM: replaceWithTag( 'I' ),
|
||||
INS: replaceWithTag( 'U' ),
|
||||
STRIKE: replaceWithTag( 'S' ),
|
||||
FONT: function ( node, parent ) {
|
||||
var face = node.face,
|
||||
|
|
Loading…
Reference in a new issue