/*
* Copyright (C) 2026 Fluxer Contributors
*
* This file is part of Fluxer.
*
* Fluxer is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Fluxer is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with Fluxer. If not, see
/gi, '\n\n')
.replace(/<\/p>/gi, '')
.replace(/
/gi, '\n')
.replace(/|
/gi, '\n')
.replace(/<\/ul>|<\/ol>/gi, '\n')
.replace(/
([\s\S]*?)<\/code><\/pre>/gi, (_, code) => `\`\`\`\n${code}\n\`\`\``)
.replace(/([\s\S]*?)<\/code>/gi, '`$1`')
.replace(/([\s\S]*?)<\/strong>/gi, '**$1**')
.replace(/([\s\S]*?)<\/b>/gi, '**$1**')
.replace(/([\s\S]*?)<\/em>/gi, '_$1_')
.replace(/([\s\S]*?)<\/i>/gi, '_$1_')
.replace(/]*?\s+)?href="([^"]*)"[^>]*>([\s\S]*?)<\/a>/gi, '[$2]($1)');
md = stripHtmlTags(md);
md = decodeHTMLEntities(md);
return md
.replace(/\n{3,}/g, '\n\n')
.replace(/\s+$/, '')
.trim();
}