Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/render_math.js')
-rw-r--r--app/assets/javascripts/render_math.js44
1 files changed, 9 insertions, 35 deletions
diff --git a/app/assets/javascripts/render_math.js b/app/assets/javascripts/render_math.js
index 73b6aafdd12..eabdb01b2a9 100644
--- a/app/assets/javascripts/render_math.js
+++ b/app/assets/javascripts/render_math.js
@@ -1,4 +1,5 @@
-/* global katex */
+import { __ } from './locale';
+import flash from './flash';
// Renders math using KaTeX in any element with the
// `js-render-math` class
@@ -8,15 +9,8 @@
// <code class="js-render-math"></div>
//
-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
-function renderWithKaTeX(elements) {
+function renderWithKaTeX(elements, katex) {
elements.each(function katexElementsLoop() {
const mathNode = $('<span></span>');
const $this = $(this);
@@ -34,30 +28,10 @@ function renderWithKaTeX(elements) {
export default function renderMath($els) {
if (!$els.length) return;
-
- if (katexLoaded) {
- renderWithKaTeX($els);
- } else {
- 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')));
- }
+ Promise.all([
+ import(/* webpackChunkName: 'katex' */ 'katex'),
+ import(/* webpackChunkName: 'katex' */ 'katex/dist/katex.css'),
+ ]).then(([katex]) => {
+ renderWithKaTeX($els, katex);
+ }).catch(() => flash(__('An error occurred while rendering KaTeX')));
}