thebe-core
Version:
Typescript based core functionality for Thebe
52 lines • 1.97 kB
JavaScript
import { RenderMimeRegistry, htmlRendererFactory, markdownRendererFactory, latexRendererFactory, svgRendererFactory, imageRendererFactory, textRendererFactory, errorRendererFactory, } from '@jupyterlab/rendermime';
import { MathJaxTypesetter } from '@jupyterlab/mathjax2';
import { rendererFactory as javascriptRendererFactory } from '@jupyterlab/javascript-extension';
import { rendererFactory as jsonRendererFactory } from '@jupyterlab/json-extension';
import { makeMathjaxOptions } from './options';
const EXTENDED_FACTORIES = [
htmlRendererFactory,
markdownRendererFactory,
latexRendererFactory,
svgRendererFactory,
imageRendererFactory,
javascriptRendererFactory,
textRendererFactory,
errorRendererFactory,
];
let RENDERERS = null;
export function getRenderers(mathjax) {
if (RENDERERS == null) {
RENDERERS = EXTENDED_FACTORIES.filter((f) => {
// filter out latex renderer if mathjax is unavailable
if (f.mimeTypes.indexOf('text/latex') >= 0) {
if (mathjax.mathjaxUrl) {
return true;
}
else {
console.debug('thebe:getRenderers MathJax unavailable');
return false;
}
}
else {
return true;
}
});
}
let latexTypesetter;
if (mathjax.mathjaxUrl && mathjax.mathjaxConfig) {
latexTypesetter = new MathJaxTypesetter({
url: mathjax.mathjaxUrl,
config: mathjax.mathjaxConfig,
});
}
return {
initialFactories: [...RENDERERS],
latexTypesetter,
};
}
export function makeRenderMimeRegistry(mathjax) {
const rendermime = new RenderMimeRegistry(getRenderers(mathjax !== null && mathjax !== void 0 ? mathjax : makeMathjaxOptions()));
rendermime.addFactory(jsonRendererFactory, 10);
return rendermime;
}
//# sourceMappingURL=rendermime.js.map