plugin.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. // Copyright (c) Jupyter Development Team.
  2. // Distributed under the terms of the Modified BSD License.
  3. import {
  4. JupyterLabPlugin
  5. } from '../application';
  6. import {
  7. HTMLRenderer, LatexRenderer, ImageRenderer, TextRenderer,
  8. JavascriptRenderer, SVGRenderer, MarkdownRenderer
  9. } from '../renderers';
  10. import {
  11. defaultSanitizer
  12. } from '../sanitizer';
  13. import {
  14. IRenderMime, RenderMime
  15. } from './';
  16. /**
  17. * The default rendermime provider.
  18. */
  19. export
  20. const renderMimeProvider: JupyterLabPlugin<IRenderMime> = {
  21. id: 'jupyter.services.rendermime',
  22. provides: IRenderMime,
  23. activate: (): IRenderMime => {
  24. let sanitizer = defaultSanitizer;
  25. const transformers = [
  26. new JavascriptRenderer(),
  27. new MarkdownRenderer(),
  28. new HTMLRenderer(),
  29. new ImageRenderer(),
  30. new SVGRenderer(),
  31. new LatexRenderer(),
  32. new TextRenderer()
  33. ];
  34. let renderers: RenderMime.MimeMap<RenderMime.IRenderer> = {};
  35. let order: string[] = [];
  36. for (let t of transformers) {
  37. for (let m of t.mimetypes) {
  38. renderers[m] = t;
  39. order.push(m);
  40. }
  41. }
  42. return new RenderMime({ renderers, order, sanitizer });
  43. }
  44. };