feat(#148): add support for Math expression

This commit is contained in:
tdurieux
2023-04-21 12:27:53 +02:00
parent 4293fa01b2
commit 3627096e63
4 changed files with 53 additions and 5 deletions

View File

@@ -109,3 +109,44 @@ function parseGithubUrl(url) {
throw "Invalid url";
}
}
function renderMD(md, baseUrl) {
md = contentAbs2Relative(md);
const renderer = new marked.Renderer();
// katex
function mathsExpression(expr) {
if (expr.match(/^\$\$[\s\S]*\$\$$/)) {
expr = expr.substr(2, expr.length - 4);
return katex.renderToString(expr, { displayMode: true });
} else if (expr.match(/^\$[\s\S]*\$$/)) {
expr = expr.substr(1, expr.length - 2);
return katex.renderToString(expr, { isplayMode: false });
}
}
const rendererCode = renderer.code;
renderer.code = function (code, lang, escaped) {
if (!lang) {
const math = mathsExpression(code);
if (math) {
return math;
}
}
// call default renderer
return rendererCode.call(this, code, lang, escaped);
// return rendererCode(code, lang, escaped);
};
const rendererCodespan = renderer.codespan;
renderer.codespan = function (text) {
const math = mathsExpression(text);
if (math) {
return math;
}
return rendererCodespan(text);
};
return marked.parse(md, { baseUrl, renderer });
}