You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何以编程方式为Jupyter Notebook添加幻灯片单元格元数据

编程方式为Jupyter/Colab单元格添加幻灯片元数据方法

nbconvert导出幻灯片时读取的单元格配置存储在metadata.slideshow.slide_type字段下,和编程添加标签、隐藏代码的元数据修改逻辑完全一致,仅需按照固定格式写入对应值即可,不需要依赖GUI编辑面板,在Colab环境下可直接使用。

支持的幻灯片类型取值

所有取值和GUI面板选项一一对应:

  • slide:标记为新主幻灯片起始,导出时单独生成一页
  • subslide:标记为子幻灯片起始,归属上一级主幻灯片,导航时按顺序展示
  • fragment:标记为当前页内分段内容,不单独成页,播放时点击逐步显现
  • skip:标记单元格在导出的幻灯片中完全隐藏
  • notes:标记为演讲者备注,仅演讲者视图可见
  • -:默认普通单元格,跟随所在幻灯片内容流正常展示

单元格内实时配置方法(Colab兼容)

在Notebook中运行如下代码,即可为当前执行代码的单元格写入指定幻灯片元数据,无额外依赖:

from IPython.display import Javascript, display

def set_slide_type(slide_type: str):
    display(Javascript(f"""
    const currentCell = Jupyter.notebook.get_selected_cell();
    currentCell.metadata.slideshow = {{slide_type: "{slide_type}"}};
    Jupyter.notebook.save_notebook();
    """))

# 调用示例:将当前单元格设为新幻灯片起始
# set_slide_type("slide")

运行后元数据自动保存到Notebook文件,和手动GUI配置效果完全一致。

批量自动化配置方法

ipynb本质为结构化JSON文件,可直接通过Python读写实现全量单元格的幻灯片配置批量修改,无需打开Notebook界面,适合自动化流程:

import json
from pathlib import Path

def batch_config_slides(input_nb_path: str, output_nb_path: str = None):
    with open(Path(input_nb_path), "r", encoding="utf-8") as f:
        notebook = json.load(f)
    
    for cell in notebook["cells"]:
        cell["metadata"].setdefault("slideshow", {})
        # 以下为示例配置规则,可根据自身需求修改判断逻辑
        if cell["cell_type"] == "markdown":
            first_line = cell["source"][0].strip() if cell["source"] else ""
            if first_line.startswith("# "):
                cell["metadata"]["slideshow"]["slide_type"] = "slide"
            elif first_line.startswith("## "):
                cell["metadata"]["slideshow"]["slide_type"] = "subslide"
            else:
                cell["metadata"]["slideshow"]["slide_type"] = "fragment"
        else:
            cell["metadata"]["slideshow"]["slide_type"] = "fragment"
    
    save_path = Path(output_nb_path) if output_nb_path else Path(input_nb_path)
    with open(save_path, "w", encoding="utf-8") as f:
        json.dump(notebook, f, ensure_ascii=False, indent=2)

# 调用示例
# batch_config_slides("demo.ipynb", "slides_demo.ipynb")

配置完成后可直接通过jupyter nbconvert --to slides 目标文件.ipynb命令导出幻灯片。


内容的提问来源于stack exchange,提问作者jeroaranda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 16:15:53