From 14cff7588fd1d88b6b503a410554344c5ba496d8 Mon Sep 17 00:00:00 2001 From: Florian Orben Date: Sat, 7 Nov 2015 02:22:39 +0100 Subject: Add latex support Adds latex highlighting support via https://www.npmjs.com/package/katex as requested in https://mattermost.uservoice.com/forums/306457-general/suggestions/10160757-add-latex-support --- web/react/.eslintrc | 5 +++-- web/react/utils/markdown.jsx | 9 +++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) (limited to 'web/react') diff --git a/web/react/.eslintrc b/web/react/.eslintrc index 7c98a2f0b..d4d28e863 100644 --- a/web/react/.eslintrc +++ b/web/react/.eslintrc @@ -6,7 +6,7 @@ "modules": true, "classes": true, "arrowFunctions": true, - "defaultParams": true, + "defaultParams": true }, "parser": "babel-eslint", "plugins": [ @@ -22,7 +22,8 @@ "React": false, "ReactDOM": false, "ReactBootstrap": false, - "Chart": false + "Chart": false, + "katex": false }, "rules": { "comma-dangle": [2, "never"], diff --git a/web/react/utils/markdown.jsx b/web/react/utils/markdown.jsx index 946f93078..3d967ae6d 100644 --- a/web/react/utils/markdown.jsx +++ b/web/react/utils/markdown.jsx @@ -69,6 +69,15 @@ class MattermostMarkdownRenderer extends marked.Renderer { usedLanguage = 'xml'; } + if (usedLanguage && (usedLanguage === 'tex' || usedLanguage === 'tex')) { + try { + var html = katex.renderToString(TextFormatting.sanitizeHtml(code), {throwOnError: false, displayMode: true}); + return '
' + html + '
'; + } catch (e) { + return '
' + TextFormatting.sanitizeHtml(code) + '
'; + } + } + if (!usedLanguage || highlightJs.listLanguages().indexOf(usedLanguage) < 0) { let parsed = super.code(code, usedLanguage); return '
' + TextFormatting.sanitizeHtml($(parsed).text()) + '
'; -- cgit v1.2.3-1-g7c22