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, " ");
}