如何将Jupyter输出包装在自定义HTML中?

时间:2020-04-03 16:34:05

标签: jupyter-notebook jupyter nbconvert

我希望能够获取对象的常规输出并将其插入自定义HTML组件中。具体来说,我想允许将一些图表放入手风琴UI元素中,或具有单击按钮时显示的隐藏数据框之类的东西。有没有办法获取通常会输出的HTML,将其包装在我自己的HTML组件中,然后输出呢?

我尝试过:

import IPython.display as dp

dp.display(dp.HTML('<div id="mycontainer">')) # Just a simple div, 
                                              # but ideally would be e.g. bootstrap component
dp.display(my_obj) # my_obj here could be a (potentially styled) dataframe 
                   # or a plot from matplotlib/altair/etc.
dp.display(dp.HTML('</div>'))

但是,未关闭的<div>会自动关闭,因此不会my_obj插入其中。有些对象具有_repr_html_(),但并非全部(特别是图表)都具有。尽管如此,Jupyter显然还是可以从任意对象中提取HTML。

从尝试阅读源代码来看,似乎nbconvert用于将对象更改为HTML,但是我不确定A)我是否理解该权利或B)如何从不在笔记本节点对象中的任意对象(或我自己如何构造这样的对象)。

1 个答案:

答案 0 :(得分:1)

这对我有用:

from IPython.core.display import display, HTML

myString = 'Hello, world!'
prependHtmlTag = '<h1>'
appendHtmlTag = '</h1>'
display(HTML(prependHtmlTag + myString + appendHtmlTag )

只需将任何 html 格式的字符串放入 display(HTML([yourString]))

相关问题