Compare commits

..

No commits in common. "d8b1134756c1871d93e7d8c4a110a817616ee149" and "842c5956c2ee91ab173f7ac9fea9d7d8007ff621" have entirely different histories.

View file

@ -35,7 +35,7 @@ export function FormattedTextTemplate(formattedText: TextFormat): string {
case 'moodle':
case 'plain':
// Replace newlines with <br> tags
result = replaceNewlinesOutsideSVG(formatText);
result = formatText.replace(/(?:\r\n|\r|\n)/g, '<br>');
break;
case 'html':
// Strip outer paragraph tags (not a great approach with regex)
@ -50,25 +50,3 @@ export function FormattedTextTemplate(formattedText: TextFormat): string {
}
return DOMPurify.sanitize(result);
}
// Function to replace \n outside of SVG paths
function replaceNewlinesOutsideSVG(text: string): string {
const svgPathRegex = /<path[^>]*d="([^"]*)"[^>]*>/g;
let result = '';
let lastIndex = 0;
// Iterate over all SVG paths
text.replace(svgPathRegex, (match, _p1, offset) => {
// Append text before the SVG path, replacing \n with <br>
result += text.slice(lastIndex, offset).replace(/(?:\r\n|\r|\n)/g, '<br>');
// Append the SVG path without replacing \n
result += match;
// Update the last index
lastIndex = offset + match.length;
return match;
});
// Append the remaining text, replacing \n with <br>
result += text.slice(lastIndex).replace(/(?:\r\n|\r|\n)/g, '<br>');
return result;
}