|
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