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';
break; return;
} }
// 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;
} }