@@ -74,7 +74,7 @@ type InternalOptions<T extends TreeAdapterTypeMap> = Required<SerializerOptions<
74
74
*/
75
75
export function serialize < T extends TreeAdapterTypeMap = DefaultTreeAdapter . DefaultTreeAdapterMap > (
76
76
node : T [ 'parentNode' ] ,
77
- options : SerializerOptions < T >
77
+ options ? : SerializerOptions < T >
78
78
) : string {
79
79
const opts = { treeAdapter : DefaultTreeAdapter , scriptingEnabled : true , ...options } ;
80
80
return serializeChildNodes ( node , opts ) ;
@@ -108,7 +108,7 @@ function serializeElement<T extends TreeAdapterTypeMap>(node: T['element'], opti
108
108
const tn = options . treeAdapter . getTagName ( node ) ;
109
109
110
110
return `<${ tn } ${ serializeAttributes ( node , options ) } >${
111
- VOID_ELEMENTS . has ( tn )
111
+ options . treeAdapter . getNamespaceURI ( node ) === NS . HTML && VOID_ELEMENTS . has ( tn )
112
112
? ''
113
113
: `${ serializeChildNodes (
114
114
// Get container of the child nodes
@@ -165,7 +165,9 @@ function serializeTextNode<T extends TreeAdapterTypeMap>(node: T['textNode'], op
165
165
const parent = treeAdapter . getParentNode ( node ) ;
166
166
const parentTn = parent && treeAdapter . isElementNode ( parent ) && treeAdapter . getTagName ( parent ) ;
167
167
168
- return parentTn && ( UNESCAPED_TEXT . has ( parentTn ) || ( options . scriptingEnabled && parentTn === $ . NOSCRIPT ) )
168
+ return parentTn &&
169
+ treeAdapter . getNamespaceURI ( parent ) === NS . HTML &&
170
+ ( UNESCAPED_TEXT . has ( parentTn ) || ( options . scriptingEnabled && parentTn === $ . NOSCRIPT ) )
169
171
? content
170
172
: escapeString ( content , false ) ;
171
173
}
0 commit comments