如何在调用HTML()后在IPython Notebook中恢复正常样式(没有样式)?

时间:2016-03-30 20:39:10

标签: python ipython jupyter jupyter-notebook

喜欢this notebook中的黑暗背景,我从gist中抓取了作者的CSS文件,并在我自己的笔记本中应用了以下内容(正如作者所做的那样):

from IPython.core.display import HTML
styles = open("custom_dark.css", "r").read()
HTML(styles)

虽然它应用了深色背景,但样式也摆脱了页面上的所有其他内容,但细胞。因此,顶部没有菜单等。即使关闭并重新打开笔记本电脑,并重新启动内核,黑暗影响和页面元素丢失仍然存在。

如何恢复样式(根本没有样式)?

3 个答案:

答案 0 :(得分:1)

文件"custom_dark.css"实际上是一个包含<style>标记并伪装成css文件的html片段。

当你&#34;显示&#34;它通过调用HTML函数,将片段插入到单元格输出区域中特殊div内的DOM中,从而导致对html页面样式进行全局更改。

保存生成的笔记本时,所有输出都被序列化为JSON并保存,包括您之前创建的DOM片段。

再次加载时,引擎会恢复保存的输出;因此,它会重新创建DOM插入,并且浏览器会再次应用自定义样式。

现在我可以想到两种恢复默认样式的方法;两者都包括删除单元格的输出:

  1. 您设法执行相同的单元格,但没有HTML()调用;这会将输出div更改为不带<script>插入的一个,并且浏览器会将其解释为删除自定义css层;然后你再次保存;

  2. 或者,您手动编辑.ipynb文件并删除罪魁祸首,即序列化输出;它应该在代表单元格的(JSON)对象的"outputs"键下(查找"text/html"成员并完全删除它);然后,您可以再次加载该文件。

答案 1 :(得分:0)

HTML("")似乎可以解决问题。

答案 2 :(得分:0)

如果您对笔记本的HTML / CSS进行了严格的修改,请尝试清除输出:

Cell> All Outputs> Clear