Skip to content
Snippets Groups Projects
Verified Commit ffd7fbf5 authored by Phil Hughes's avatar Phil Hughes
Browse files

moved to es6 modules

parent 1374da4c
No related branches found
No related tags found
No related merge requests found
import './render_math';
import './render_mermaid';
import renderMath from './render_math';
import renderMermaid from './render_mermaid';
 
// Render Gitlab flavoured Markdown
//
Loading
Loading
@@ -7,8 +7,8 @@ import './render_mermaid';
//
$.fn.renderGFM = function renderGFM() {
this.find('.js-syntax-highlight').syntaxHighlight();
this.find('.js-render-math').renderMath();
this.find('.js-render-mermaid').renderMermaid();
renderMath(this.find('.js-render-math'));
renderMermaid(this.find('.js-render-mermaid'));
return this;
};
 
Loading
Loading
/* eslint-disable func-names, space-before-function-paren, consistent-return, no-var, no-else-return, prefer-arrow-callback, max-len, no-console */
/* global katex */
 
// Renders math using KaTeX in any element with the
Loading
Loading
@@ -8,49 +7,45 @@
//
// <code class="js-render-math"></div>
//
(function() {
// Only load once
var katexLoaded = false;
let katexLoaded = false;
 
// Loop over all math elements and render math
var renderWithKaTeX = function (elements) {
elements.each(function () {
var mathNode = $('<span></span>');
var $this = $(this);
// Loop over all math elements and render math
function renderWithKaTeX(elements) {
elements.each(function katexElementsLoop() {
const mathNode = $('<span></span>');
const $this = $(this);
 
var display = $this.attr('data-math-style') === 'display';
try {
katex.render($this.text(), mathNode.get(0), { displayMode: display });
mathNode.insertAfter($this);
$this.remove();
} catch (err) {
// What can we do??
console.log(err.message);
}
});
};
const display = $this.attr('data-math-style') === 'display';
try {
katex.render($this.text(), mathNode.get(0), { displayMode: display });
mathNode.insertAfter($this);
$this.remove();
} catch (err) {
throw err;
}
});
}
 
$.fn.renderMath = function() {
var $this = this;
if ($this.length === 0) return;
export default function renderMath($els) {
if (!$els.length) return;
 
if (katexLoaded) renderWithKaTeX($this);
else {
// Request CSS file so it is in the cache
$.get(gon.katex_css_url, function() {
var css = $('<link>',
{ rel: 'stylesheet',
type: 'text/css',
href: gon.katex_css_url,
});
css.appendTo('head');
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, function() {
katexLoaded = true;
renderWithKaTeX($this); // Run KaTeX
});
// Load KaTeX js
$.getScript(gon.katex_js_url, () => {
katexLoaded = true;
renderWithKaTeX($els); // Run KaTeX
});
}
};
}).call(window);
});
}
}
Loading
Loading
@@ -14,8 +14,8 @@
 
import Flash from './flash';
 
$.fn.renderMermaid = function renderMermaid() {
if (this.length === 0) return;
export default function renderMermaid($els) {
if (!$els.length) return;
 
import(/* webpackChunkName: 'mermaid' */ 'blackst0ne-mermaid').then((mermaid) => {
mermaid.initialize({
Loading
Loading
@@ -23,8 +23,10 @@ $.fn.renderMermaid = function renderMermaid() {
theme: 'neutral',
});
 
mermaid.init(undefined, this);
$els.each((i, el) => {
mermaid.init(undefined, el);
});
}).catch((err) => {
Flash(`Can't load mermaid module: ${err}`);
});
};
}
Loading
Loading
@@ -4,8 +4,6 @@
import 'autosize';
import '~/gl_form';
import '~/lib/utils/text_utility';
import '~/render_math';
import '~/render_mermaid';
import '~/render_gfm';
import '~/notes';
 
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment