2 JupyterFrontEnd,
3 JupyterFrontEndPlugin
4} from '@jupyterlab/application';
6import { IKernelSpecs } from '@jupyterlite/services';
7import type { IKernel } from '@jupyterlite/services';
9import { NumblKernel } from './kernel';
11/** numbl's matrix logo, inlined so the spec needs no served resources. */
12const NUMBL_LOGO =
13 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8IS0tIEJhY2tncm91bmQgLS0+CiAgPHJlY3Qgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIiBmaWxsPSIjNjQ3NDhiIiByeD0iNCIvPgoKICA8IS0tIE1hdHJpeCBicmFja2V0cyBhbmQgZG90cyAod2hpdGUgb24gYmx1ZSkgLS0+CiAgPGcgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIyIiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiPgogICAgPCEtLSBMZWZ0IGJyYWNrZXQgLS0+CiAgICA8cGF0aCBkPSJNIDggOSBMIDYgOSBMIDYgMjMgTCA4IDIzIi8+CiAgICA8IS0tIFJpZ2h0IGJyYWNrZXQgLS0+CiAgICA8cGF0aCBkPSJNIDI0IDkgTCAyNiA5IEwgMjYgMjMgTCAyNCAyMyIvPgogIDwvZz4KCiAgPCEtLSBNYXRyaXggZG90cyAtLT4KICA8ZyBmaWxsPSJ3aGl0ZSI+CiAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEzIiByPSIxLjUiLz4KICAgIDxjaXJjbGUgY3g9IjE2IiBjeT0iMTMiIHI9IjEuNSIvPgogICAgPGNpcmNsZSBjeD0iMjAiIGN5PSIxMyIgcj0iMS41Ii8+CgogICAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxOSIgcj0iMS41Ii8+CiAgICA8Y2lyY2xlIGN4PSIxNiIgY3k9IjE5IiByPSIxLjUiLz4KICAgIDxjaXJjbGUgY3g9IjIwIiBjeT0iMTkiIHI9IjEuNSIvPgogIDwvZz4KPC9zdmc+Cg==';
15/**
16 * A plugin to register the numbl (MATLAB-syntax) kernel.
17 */
18const kernel: JupyterFrontEndPlugin<void> = {
19 id: 'jupyterlite-numbl-kernel:kernel',
20 autoStart: true,
21 requires: [IKernelSpecs],
22 activate: (app: JupyterFrontEnd, kernelspecs: IKernelSpecs) => {
23 kernelspecs.register({
24 spec: {
25 name: 'numbl',
26 display_name: 'MATLAB (numbl)',
27 language: 'matlab',
28 argv: [],
29 resources: {
30 'logo-32x32': NUMBL_LOGO,
31 'logo-64x64': NUMBL_LOGO
32 }
33 },
34 create: async (options: IKernel.IOptions): Promise<IKernel> => {
6b31a9aSync .m workspace files from the notebook directory into the sessionJeremy Magland 35 return new NumblKernel(options, app.serviceManager.contents);
37 });
38 }
39};
41const plugins: JupyterFrontEndPlugin<unknown>[] = [kernel];
43export default plugins;