diff --git a/index.js b/index.js index 57e8eeada1f894ea602558cd907846f693a4dd88..ce335e3640547327bf041e2a629d3b86e4059234 100644 --- a/index.js +++ b/index.js @@ -152,6 +152,15 @@ function math_block(state, start, end, silent){ return true; } +function escapeHtml(unsafe) { + return unsafe + .replace(/&/g, "&") + .replace(/</g, "<") + .replace(/>/g, ">") + .replace(/"/g, """) + .replace(/'/g, "'"); +} + module.exports = function math_plugin(md, options) { // Default options @@ -165,7 +174,7 @@ module.exports = function math_plugin(md, options) { } catch(error){ if(options.throwOnError){ console.log(error); } - return latex; + return `<span class='katex-error' title='${escapeHtml(error)}'>${escapeHtml(latex)}</span>`; } }; @@ -176,11 +185,11 @@ module.exports = function math_plugin(md, options) { var katexBlock = function(latex){ options.displayMode = true; try{ - return "<p>" + katex.renderToString(latex, options) + "</p>"; + return "<p class='katex-block'>" + katex.renderToString(latex, options) + "</p>"; } catch(error){ if(options.throwOnError){ console.log(error); } - return latex; + return `<p class='katex-block katex-error' title='${escapeHtml(error)}'>${escapeHtml(latex)}</p>`; } }