“nbformat 包允许您以编程方式读取和解析笔记本文件。” - SOURCE, Tony Hirst's description
nbformat 是 Jupyter 的一部分,因此它可以在您运行笔记本的任何地方运行。
我使用 nbformat 来执行与您的目标 here 类似的事情(处于工作进行中状态)。最相关的部分是here,我将笔记本中单元格的元数据设置为幻灯片放映。这是该部分的要点:
import nbformat as nbf
a = nbf.v4.new_notebook()
for p in image_fn_pairs:
content_for_md_cell = slideshow_cell_stub_text.replace(
"THE_IMAGE1_PLACEHOLDER_TEXT_GOES_HERE",p[0]).replace(
"THE_IMAGE2_PLACEHOLDER_TEXT_GOES_HERE",p[1])
a.cells.append(nbf.v4.new_markdown_cell(content_for_md_cell))
# fix the metadata for each cell to be for a slide
slide_show_meta = {"slideshow": {"slide_type": "slide"}}
# a.cells = [c["metadata"] = slide_show_meta for c in a.cells]
meta_fixed_cells = []
for c in a.cells:
c["metadata"] = slide_show_meta
meta_fixed_cells.append(c)
a.cells = meta_fixed_cells
在您的情况下,听起来您的笔记本中已经有了内容,因此在您的情况下,您需要先在笔记本中阅读,如下所示:
import nbformat as nbf
ntbk = nbf.read("old_notebook.ipynb", nbf.NO_CONVERT)
然后像我的例子一样修复元数据。这些方面的东西:
new_ntbk = ntbk
# fix the metadata for each cell to be for a slide
slide_show_meta = {"slideshow": {"slide_type": "slide"}}
meta_fixed_cells = []
for c in ntbk.cells:
c["metadata"] = slide_show_meta
meta_fixed_cells.append(c)
new_ntbk.cells = meta_fixed_cells
nbf.write(new_ntbk, "notebook_with_slide_metadata.ipynb", version=nbf.NO_CONVERT)
您可以通过转到there 并单击launch binder 来尝试我在上面设置和提到的自动化、正在进行的幻灯片构建过程。我认为,如果您只是在出现的笔记本中运行东西,它将指导您制作幻灯片,每张幻灯片上并排填充一些填充的矩形作为图像的替代品。
您还会看到我在the script 中使用了一个笔记本存根,它基于a notebook stub 添加整个笔记本here 的元数据,以便在打开笔记本时自动播放幻灯片,即,"livereveal": {"autolaunch": true, "scroll": true} 部分。
nbconvert 包含一个将编辑元数据的预处理器,请参阅here,它看起来将添加元数据。