avoid duplicating all the childNodes.length checks

This commit is contained in:
Hazelnoot 2025-06-13 21:08:20 -04:00
parent a524a9cea8
commit 8d628aa50b

View file

@ -72,12 +72,17 @@ export class MfmService {
return; return;
} }
switch (node.tagName) { if (node.tagName === 'br') {
case 'br': { text += '\n';
text += '\n'; return;
break; }
}
// Don't produce invalid empty MFM
if (node.childNodes.length < 1) {
return;
}
switch (node.tagName) {
case 'a': { case 'a': {
const txt = getText(node); const txt = getText(node);
const rel = node.attribs.rel; const rel = node.attribs.rel;
@ -127,60 +132,48 @@ export class MfmService {
} }
case 'h1': { case 'h1': {
if (node.childNodes.length > 0) { text += '**【';
text += '**【'; appendChildren(node.childNodes);
appendChildren(node.childNodes); text += '】**\n';
text += '】**\n';
}
break; break;
} }
case 'h2': case 'h2':
case 'h3': { case 'h3': {
if (node.childNodes.length > 0) { text += '**';
text += '**'; appendChildren(node.childNodes);
appendChildren(node.childNodes); text += '**\n';
text += '**\n';
}
break; break;
} }
case 'b': case 'b':
case 'strong': { case 'strong': {
if (node.childNodes.length > 0) { text += '**';
text += '**'; appendChildren(node.childNodes);
appendChildren(node.childNodes); text += '**';
text += '**';
}
break; break;
} }
case 'small': { case 'small': {
if (node.childNodes.length > 0) { text += '<small>';
text += '<small>'; appendChildren(node.childNodes);
appendChildren(node.childNodes); text += '</small>';
text += '</small>';
}
break; break;
} }
case 's': case 's':
case 'del': { case 'del': {
if (node.childNodes.length > 0) { text += '~~';
text += '~~'; appendChildren(node.childNodes);
appendChildren(node.childNodes); text += '~~';
text += '~~';
}
break; break;
} }
case 'i': case 'i':
case 'em': { case 'em': {
if (node.childNodes.length > 0) { text += '<i>';
text += '<i>'; appendChildren(node.childNodes);
appendChildren(node.childNodes); text += '</i>';
text += '</i>';
}
break; break;
} }
@ -235,11 +228,9 @@ export class MfmService {
// inline code (<code>) // inline code (<code>)
case 'code': { case 'code': {
if (node.childNodes.length > 0) { text += '`';
text += '`'; appendChildren(node.childNodes);
appendChildren(node.childNodes); text += '`';
text += '`';
}
break; break;
} }
@ -256,10 +247,8 @@ export class MfmService {
case 'h4': case 'h4':
case 'h5': case 'h5':
case 'h6': { case 'h6': {
if (node.childNodes.length > 0) { text += '\n\n';
text += '\n\n'; appendChildren(node.childNodes);
appendChildren(node.childNodes);
}
break; break;
} }
@ -271,10 +260,8 @@ export class MfmService {
case 'li': case 'li':
case 'dt': case 'dt':
case 'dd': { case 'dd': {
if (node.childNodes.length > 0) { text += '\n';
text += '\n'; appendChildren(node.childNodes);
appendChildren(node.childNodes);
}
break; break;
} }