@@ -160,12 +160,13 @@ async def run_async(self:CaptureShell,
160160def _pre (s , xtra = '' ): return f"<pre { xtra } ><code>{ escape (s )} </code></pre>"
161161def _strip (s ): return strip_ansi (escape (s ))
162162
163- def render_outputs (outputs , ansi_renderer = _strip , include_imgs = True , pygments = False ):
163+ def render_outputs (outputs , ansi_renderer = _strip , include_imgs = True , pygments = False , md_tfm = noop , html_tfm = noop ):
164164 try :
165165 from mistletoe import markdown , HTMLRenderer
166166 from mistletoe .contrib .pygments_renderer import PygmentsRenderer
167167 except ImportError : return print ('mistletoe not found -- please install it' )
168168 renderer = PygmentsRenderer if pygments else HTMLRenderer
169+
169170 def render_output (out ):
170171 otype = out ['output_type' ]
171172 if otype == 'stream' :
@@ -176,9 +177,9 @@ def render_output(out):
176177 elif otype in ('display_data' ,'execute_result' ):
177178 data = out ['data' ]
178179 _g = lambda t : '' .join (data [t ]) if t in data else None
179- if d := _g ('text/html' ): return d
180+ if d := _g ('text/html' ): return html_tfm ( d )
180181 if d := _g ('application/javascript' ): return f'<script>{ d } </script>'
181- if d := _g ('text/markdown' ): return markdown (d , renderer = renderer )
182+ if d := _g ('text/markdown' ): return md_tfm ( markdown (d , renderer = renderer ) )
182183 if d := _g ('text/latex' ): return f'<div class="math">${ d } $</div>'
183184 if include_imgs :
184185 if d := _g ('image/jpeg' ): return f'<img src="data:image/jpeg;base64,{ d } "/>'
0 commit comments