|
68 | 68 | switch matlab.internal.editor.getApiVersion('synchronous')
|
69 | 69 | case 1
|
70 | 70 | request = updateRequestFromVersion1(request, code);
|
| 71 | + case 2 |
| 72 | + request = updateRequestFromVersion2(request, code); |
71 | 73 | otherwise
|
72 | 74 | error("Invalid API version. Create an issue at https://github.com/mathworks/jupyter-matlab-proxy for further support.");
|
73 | 75 | end
|
|
95 | 97 | request.shouldResetState = false;
|
96 | 98 | request.shouldDoFullCleanup = false;
|
97 | 99 |
|
| 100 | +% Helper function to update fields in the request when LiveEditor API version is 2. |
| 101 | +function request = updateRequestFromVersion2(request, code) |
| 102 | +request = updateRequestFromVersion1(request, code); |
| 103 | + |
| 104 | +% Request MIME based outputs. |
| 105 | +request.preferBasicOutputs = true; |
| 106 | + |
98 | 107 | % Helper function to process different types of outputs given by LiveEditor API.
|
99 | 108 | function result = processOutputs(outputs)
|
100 | 109 | result =cell(1,length(outputs));
|
|
141 | 150 | end
|
142 | 151 | result{idx} = processFigure(outputData.figureImage);
|
143 | 152 | end
|
| 153 | + case 'text/html' |
| 154 | + result{ii} = processHtml(outputData); |
144 | 155 | end
|
145 | 156 | end
|
146 | 157 |
|
|
185 | 196 | end
|
186 | 197 | text = sprintf("%s = %s%s%s", output.name, output.header, indentation, output.value);
|
187 | 198 | result = processText(text);
|
188 |
| - |
| 199 | + |
189 | 200 | % Helper function for post-processing symbolic outputs. The captured output
|
190 | 201 | % contains MathML representation of symbolic expressions. Since Jupyter and
|
191 | 202 | % GitHub have native support for LaTeX, we use EquationRenderer JS API to
|
|
252 | 263 | result.value = {result.value};
|
253 | 264 | result.type = 'execute_result';
|
254 | 265 |
|
| 266 | +% Helper function for processing text/html mime-type outputs. |
| 267 | +function result = processHtml(text) |
| 268 | +result.type = 'execute_result'; |
| 269 | +result.mimetype = {"text/html", "text/plain"}; |
| 270 | +result.value = [sprintf("%s",text), text]; |
| 271 | + |
255 | 272 | % Helper function to notify browser page load finished
|
256 | 273 | function pageLoadCallback(~,~,idler)
|
257 | 274 | idler.stopIdling();
|
0 commit comments