thebe-core
Version:
Typescript based core functionality for Thebe
57 lines • 2.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.makeRenderMimeRegistry = exports.getRenderers = void 0;
const rendermime_1 = require("@jupyterlab/rendermime");
const mathjax2_1 = require("@jupyterlab/mathjax2");
const javascript_extension_1 = require("@jupyterlab/javascript-extension");
const json_extension_1 = require("@jupyterlab/json-extension");
const options_1 = require("./options");
const EXTENDED_FACTORIES = [
rendermime_1.htmlRendererFactory,
rendermime_1.markdownRendererFactory,
rendermime_1.latexRendererFactory,
rendermime_1.svgRendererFactory,
rendermime_1.imageRendererFactory,
javascript_extension_1.rendererFactory,
rendermime_1.textRendererFactory,
rendermime_1.errorRendererFactory,
];
let RENDERERS = null;
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 mathjax2_1.MathJaxTypesetter({
url: mathjax.mathjaxUrl,
config: mathjax.mathjaxConfig,
});
}
return {
initialFactories: [...RENDERERS],
latexTypesetter,
};
}
exports.getRenderers = getRenderers;
function makeRenderMimeRegistry(mathjax) {
const rendermime = new rendermime_1.RenderMimeRegistry(getRenderers(mathjax !== null && mathjax !== void 0 ? mathjax : (0, options_1.makeMathjaxOptions)()));
rendermime.addFactory(json_extension_1.rendererFactory, 10);
return rendermime;
}
exports.makeRenderMimeRegistry = makeRenderMimeRegistry;
//# sourceMappingURL=rendermime.js.map