具有Markdown内容的IPython丰富显示

时间:2018-12-10 13:00:05

标签: jupyter-notebook jupyter

IPython docs给出了一个示例,说明如何在IPython中创建自己的对象以使其可以丰富显示:

class Shout(object):
    def __init__(self, text):
        self.text = text

    def _repr_html_(self):
        return "<h1>" + self.text + "</h1>"

但是,这只是一个非常简单的示例,对于我来说,我不仅要呈现文本,还希望在小部件中呈现Markdown。

我尝试了许多不同的变体

class Shout(object):
    def __init__(self, text):
        self.text = text

    def _repr_html_(self):
        return "<h1>" + IPython.display.Markdown(self.text) + "</h1>"

class Shout(object):
    def __init__(self, text):
        self.text = text

    def _repr_html_(self):
        return "<h1>" + IPython.display.Markdown(self.text)._repr_html_() + "</h1>"

class Shout(object):
    def __init__(self, text):
        self.text = text

    def _repr_html_(self):
        return "<h1>" + IPython.display.display(IPython.display.Markdown(self.text)) + "</h1>"

但是它们都不起作用。它们要么不显示任何内容,None,要么不显示AttributeError: 'Markdown' object has no attribute '_repr_html_'

有没有一种方法可以在IPython中的另一个对象内显示markdown显示对象?我想实现自己的_repr_latex_,因此将<h1>插入Markdown并不是解决方案。

0 个答案:

没有答案