export function extractLatexImages(html: string) { const imgRegex = /]+src="(https:\/\/latex\.codecogs\.com\/gif\.latex\?(=?.*?))"[^>]*>/g; let parts = []; let latexMatches: string[] = []; let lastIndex = 0; html.replace(imgRegex, (match, _, latex, index) => { parts.push(html.slice(lastIndex, index)); // Add HTML before image latexMatches.push(decodeURIComponent(latex)); // Extract and decode LaTeX lastIndex = index + match.length; return ""; }); parts.push(html.slice(lastIndex)); // Add remaining HTML after last image return { parts, latexMatches }; } export function renderLatex(html: string) { const { parts, latexMatches } = extractLatexImages(html); const outputHtml = parts .map((part, i) => { if (!latexMatches[i]) { return part; } return `${part}$$${latexMatches[i]}$$`; }) .join(""); // Remove all "\," from string const regex = /\\,/g; return outputHtml.replace(regex, " "); }