diff --git a/index.js b/index.js index 57e8eeada1f894ea602558cd907846f693a4dd88..3bf81ab6995d36dbb846d419fe3468fdc738c183 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.toString())}'>${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.toString())}'>${escapeHtml(latex)}</p>`; } } diff --git a/package.json b/package.json index e502f3ac266c5f0557e03c37ee5ee2067f99b8ca..888d3107ee9fb0f24a08b77596ff158002ddf6f4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@iktakahiro/markdown-it-katex", - "version": "3.0.3", + "version": "3.0.4", "description": "Fast math support for markdown-it with KaTeX", "main": "index.js", "scripts": {