This commit is contained in:
HuangHai
2026-01-21 09:59:09 +08:00
parent 2fda6f0dcf
commit 0f4435b51c
9 changed files with 158 additions and 79 deletions

View File

@@ -62,43 +62,41 @@ createApp({
if (!text) return '';
try {
// 1. 处理 LaTeX (简单替换,先处理 $$ 再处理 $)
let processedText = text;
// 处理块级 LaTeX: $$ ... $$
processedText = processedText.replace(/\$\$\s*([\s\S]*?)\s*\$\$/g, (match, formula) => {
try {
if (typeof katex !== 'undefined') {
// 1. 处理 LaTeX
if (typeof katex !== 'undefined') {
// 处理块级 LaTeX: $$ ... $$
processedText = processedText.replace(/\$\$\s*([\s\S]*?)\s*\$\$/g, (match, formula) => {
try {
return '<div class="katex-block">' + katex.renderToString(formula, { displayMode: true, throwOnError: false }) + '</div>';
}
return match;
} catch (e) {
return match;
}
});
// 处理行内 LaTeX: $ ... $
processedText = processedText.replace(/\$([^\$\n]+?)\$/g, (match, formula) => {
try {
if (typeof katex !== 'undefined') {
} catch (e) { return match; }
});
// 处理行内 LaTeX: $ ... $
processedText = processedText.replace(/\$([^\$\n]+?)\$/g, (match, formula) => {
try {
return katex.renderToString(formula, { displayMode: false, throwOnError: false });
}
return match;
} catch (e) {
return match;
}
});
} catch (e) { return match; }
});
}
// 2. 使用 marked 解析 Markdown
if (typeof marked !== 'undefined') {
// marked v12+ 使用 marked.parse
return marked.parse(processedText);
} else {
// 降级使用之前的 simpleMarkdown
// 降级使用 simpleMarkdown
return simpleMarkdown(processedText);
}
} catch (e) {
console.error('Markdown/LaTeX rendering error:', e);
return text;
console.error('Markdown rendering error:', e);
// 最后的兜底:如果 marked 报错,尝试用 simpleMarkdown
try {
return simpleMarkdown(text);
} catch (e2) {
return text;
}
}
};