diff options
| author | Simon Knox <psimyn@gmail.com> | 2018-02-07 20:05:38 +1100 |
|---|---|---|
| committer | Simon Knox <psimyn@gmail.com> | 2018-02-07 20:05:38 +1100 |
| commit | 4e91d397833eb10e9eb64a48387c441be2922dfb (patch) | |
| tree | 079cbe95e6b0ac773987dd2ccedb98b1ded9681b /app/assets/javascripts/render_math.js | |
| parent | b68e473e7bb2b64e1a36c54f9ced10ffe5a96763 (diff) | |
| parent | 4457cf9d178dc9912fd9c16427ad81b389179d00 (diff) | |
| download | gitlab-ce-snake-case.tar.gz | |
Merge branch 'master' into snake-casesnake-case
Diffstat (limited to 'app/assets/javascripts/render_math.js')
| -rw-r--r-- | app/assets/javascripts/render_math.js | 40 |
1 files changed, 26 insertions, 14 deletions
diff --git a/app/assets/javascripts/render_math.js b/app/assets/javascripts/render_math.js index a759992cd54..73b6aafdd12 100644 --- a/app/assets/javascripts/render_math.js +++ b/app/assets/javascripts/render_math.js @@ -7,7 +7,12 @@ // // <code class="js-render-math"></div> // - // Only load once + +import { __ } from './locale'; +import axios from './lib/utils/axios_utils'; +import flash from './flash'; + +// Only load once let katexLoaded = false; // Loop over all math elements and render math @@ -18,7 +23,7 @@ function renderWithKaTeX(elements) { const display = $this.attr('data-math-style') === 'display'; try { - katex.render($this.text(), mathNode.get(0), { displayMode: display }); + katex.render($this.text(), mathNode.get(0), { displayMode: display, throwOnError: false }); mathNode.insertAfter($this); $this.remove(); } catch (err) { @@ -33,19 +38,26 @@ export default function renderMath($els) { if (katexLoaded) { renderWithKaTeX($els); } else { - $.get(gon.katex_css_url, () => { - const css = $('<link>', { - rel: 'stylesheet', - type: 'text/css', - href: gon.katex_css_url, - }); - css.appendTo('head'); - - // Load KaTeX js - $.getScript(gon.katex_js_url, () => { + axios.get(gon.katex_css_url) + .then(() => { + const css = $('<link>', { + rel: 'stylesheet', + type: 'text/css', + href: gon.katex_css_url, + }); + css.appendTo('head'); + }) + .then(() => axios.get(gon.katex_js_url, { + responseType: 'text', + })) + .then(({ data }) => { + // Add katex js to our document + $.globalEval(data); + }) + .then(() => { katexLoaded = true; renderWithKaTeX($els); // Run KaTeX - }); - }); + }) + .catch(() => flash(__('An error occurred while rendering KaTeX'))); } } |
