18 lines
520 B
TypeScript
18 lines
520 B
TypeScript
|
/**
|
||
|
* The react parser doesn't like whitespace nodes in tags that require
|
||
|
* specific DOM node children.
|
||
|
*
|
||
|
* @param html
|
||
|
* @return string
|
||
|
*/
|
||
|
const cleanWhitespace = (html: string): string => {
|
||
|
let cleanHTML = html;
|
||
|
const rxp = /(\<\/?(?:table|tbody|thead|tfoot|tr|th|td)\>)\s+(\<\/?(?:table|tbody|thead|tfoot|tr|th|td)\>)/;
|
||
|
while (rxp.test(cleanHTML)) {
|
||
|
cleanHTML = cleanHTML.replace(rxp, (_, tag1, tag2) => `${tag1}${tag2}`)
|
||
|
}
|
||
|
|
||
|
return cleanHTML;
|
||
|
};
|
||
|
|
||
|
export default cleanWhitespace;
|