Jupyter Notebook 导出 HTML 深色

Jupyter Notebook exported HTML dark color

我正在使用浅色主题的 JupyterLab,当我将笔记本导出为 HTML 时,我看到了这个:

我期待看到的是这样的:

对设置有什么想法吗?

我遇到了同样的问题。渲染的 html 不仅有深色背景,这使得 x 和 y 轴标签和刻度不可读(它们是黑色的),而且块之间的对齐方式也很奇怪。

虽然我不知道如何以编程方式解决它,但我确实找到了解决方法。

  1. 去官方jupyter lab online playground.
  2. 选择Try Jupyter Lab
  3. 导出 Lorentz.ipynb(或任何 .ipynb 文件)。你会发现这个 Lorentz.html 被正确渲染了。
  4. Lorentz.html 的 body 和标题替换为 incorrectly-rendered html 文件 old_foo.html 的 body(本质上,我们是将 Lorentz.html 的样式用于 old_foo.html 的 body).
  5. Lorentz.html 重命名为 new_foo.html。打开new_foo.html你会发现渲染正确

如果您 运行 比较 new_foo.htmlold_foo.html 之间的差异,您会发现差异在于一大块样式代码。

我不确定这是我的配置错误还是 jupyter 实验室中的错误。

--

$ jupyter --version
jupyter core     : 4.6.3
jupyter-notebook : 6.0.3
qtconsole        : not installed
ipython          : 7.14.0
ipykernel        : 5.3.0
jupyter client   : 6.1.3
jupyter lab      : 2.1.3
nbconvert        : 5.6.1
ipywidgets       : not installed
nbformat         : 5.0.6
traitlets        : 4.3.3

Vanila HTML 从 jupyter 实验室导出:

用 jupyter lab 在线游乐场中的样式替换样式:

更新

此 hack 不再 适用于以下 jupyter 版本:

╰─$ jupyter --version
jupyter core     : 4.6.3
jupyter-notebook : 6.1.4
qtconsole        : not installed
ipython          : 7.18.1
ipykernel        : 5.3.4
jupyter client   : 6.1.7
jupyter lab      : 2.2.8
nbconvert        : 6.0.6
ipywidgets       : not installed
nbformat         : 5.0.7
traitlets        : 5.0.4

我遇到了完全相同的问题。经过几个小时的调试后,我意识到它必须(至少对我而言)与 jupyter-theme 库有关。我安装了深色主题,我认为 nbconverter 使用您的 jupyter 也在使用的任何设置,因此深色设置影响了 html 转换。

解决方案只是通过以下方式恢复默认值: $ jt -r

如果还是不行,请参考这个帖子:https://github.com/dunovank/jupyter-themes/issues/86

从命令行 运行:

jupyter nbconvert --execute --to html /path/to/example.ipynb --HTMLExporter.theme=dark

添加 --execute 保证在保存之前渲染绘图。

你也可以使用 Plotly dark 主题让情节变黑

import plotly.io as pio
pio.templates.default = "plotly_dark"