如何将Jupyter Notebook转换为WordPress合适的HTML



本周我做了一个Jupyter笔记本,这将是我博客的一篇很棒的文章。我已经发现您可以将此笔记本导出为简化的HTML格式,可以使用以下命令将其嵌入到网页上:

jupyter nbconvert mynotebook.ipynb --to html --template basic

但是,我想改变一些简单的事情。例如:现在每个标题都以"行尾字符"结尾,输入和输出之间没有明显的区别。

在Jupyter的NBConvert文档页面上,我找不到有关更改模板(https://ipython.org/ipython-doc/3/notebook/nbconvert.html)的任何内容。他们只说

"IPython为某些输出格式提供了一些模板,这些 可以通过附加的 --template 参数指定。

是否可以指定自己的模板?在哪里可以找到要调整的"基本"模板?

您必须在wordpress中安装以下插件:"oEmbed Gist">

然后只需完成以下步骤:

1/将笔记本粘贴到github的要点中(不要忘记添加.ipynb扩展名)。

2/只需将链接粘贴到您的要点,wordpress将为您正确完成所有工作

oEmbedded Gist 插件只有在您是 wordpress 的高级会员时才能安装。但是,插入

[要点链接到你要点]

进入WordPress帖子,将完成工作!

对于那些希望将HTML加载到Wordpress(而不是通过Gist嵌入它)的人来说,你可以使用nb2wp工具将笔记本转换为不需要插件,CSS和任何脚本的纯HTML。将提取图像并将乳胶指令转换为WP乳胶指令。

该实用程序的作用如下:

  • 使用选定的模板(完整、基本或自定义)使用 nbconvert 将 .ipynb 转换为 HTML
  • 使用 pynliner 将 CSS 转换为内联样式,以便 Wordpress 支持该样式。默认情况下,它将nbconvert给出的CSS替换为自定义和更简单的样式.css可以通过pynliner内联。
  • 将嵌入的图像(例如 Matplotlib 生成的图像)和本地图像提取到 img 目录。您需要将此 img 目录上传到某处,并为图像提供 URL 前缀。
  • 将乳胶指令转换为 Wordpress.com 乳胶指令。

然后你需要做一些手动工作:

  • 将 HTML 复制粘贴到 Wordpress HTML 编辑器中
  • 上传镜像目录。

这远非理想,结果也不是很好,但我想这是一个开始和另一种选择。(免责声明:我是作者)

你也可以使用 nbconvert – Jupyter notebooks 的 wordpress 插件。关注这个详细的博客(https://www.andrewchallis.co.uk/portfolio/php-nbconvert-a-wordpress-plugin-for-jupyter-notebooks/),作者在其中解释了要遵循的步骤,优点和缺点。

我制作了一个笔记本 Wordpress 插件,适用于托管笔记本的任何 URL!我很快就会把它公开添加到Wordpress上。

https://www.andrewchallis.co.uk/portfolio/php-nbconvert-a-wordpress-plugin-for-jupyter-notebooks/

它的使用方式与 gist 插件相同,只是它被称为 nbconvert

[nbconvert url="Www.example.co.uk/path/to/some/notebook.ipynb">

下面是基本模板的源代码。请注意,它是从"经典"加载的,您也可以在那里找到。

现在,让我们看看如何自定义它。

编辑 nbconvert 的基本模板

快速肮脏的方法是在可编辑模式下安装nbconvert,然后编辑基本模板:

git clone https://github.com/jupyter/nbconvert
cd nbconvert
# install in editable mode
pip install -e .

创建您自己的模板

干净的方法是创建一个新模板,然后将其与nbconvert集成,以便您可以执行以下操作:

jupyter nbconvert --to html --template {your-template-name}

这是一个这样做的项目。它将帮助您了解它是如何完成的。

非 nbconvert 解决方案

最终的解决方案是不使用nbconvert。首先,您需要将笔记本转换为降价:

pip install jupytext
jupytext notebook.ipynb --to md

然后,您可以使用 jupyblog 来执行该 markdown(它将创建一个新的 markdown 文件,其中包含带有输出的代码片段)。如果您的博客引擎支持降价文件,那么您就完成了;如果没有,您可以轻松地将该降价转换为 HTML。

最新更新