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

Jupyter Notebook转HTML后Markdown标题编号丢失问题求助

解决Jupyter Notebook转单一HTML带标题编号+内嵌图片的问题

我完全懂你的痛点——Notebook里用Nbextensions的TOC(2)显示目录和标题编号很正常,但直接下载HTML就丢了编号;用「HTML with toc」虽然有编号,却会生成一堆单独的图片文件,想要一个打包所有内容的单一HTML文件对吧?试试下面这两个方法:

方法一:用nbconvert命令行一键搞定(推荐)

这是最简单直接的方案,通过命令行参数同时启用目录编号和图片内嵌,一步生成符合要求的文件:

  1. 打开终端/命令提示符,切换到你的notebook所在文件夹。
  2. 运行下面的命令(把你的笔记本文件名.ipynb换成你实际的文件名):
    jupyter nbconvert --to html --toc --EmbedImagesPreprocessor.enabled=True "你的笔记本文件名.ipynb"
    
    如果你需要保留代码输入框和输出提示(比如Out[1]:这类标记),就用这个增强版命令:
    jupyter nbconvert --to html --toc --EmbedImagesPreprocessor.enabled=True --TemplateExporter.exclude_input=False --TemplateExporter.exclude_output_prompt=False "你的笔记本文件名.ipynb"
    

关键参数说明:

  • --toc:自动给所有标题加上层级编号,同时生成可跳转的目录,效果和「HTML with toc」完全一致
  • --EmbedImagesPreprocessor.enabled=True:把Notebook里的所有图片(包括matplotlib、seaborn这类绘图输出)转成base64编码内嵌到HTML里,不会生成单独的图片文件夹
  • 后面两个参数是可选的,用来控制是否保留代码输入和输出提示,根据你的需求选择就行

运行完命令,你就能在同目录下拿到一个完美的单一HTML文件——既有标题编号,所有图片也都内嵌在里面,不用额外带一堆文件。

方法二:自定义模板调整样式(进阶)

如果默认的目录或标题样式不符合你的审美,你可以自定义nbconvert的HTML模板来调整:

  1. 先找到nbconvert的模板目录,运行这个命令查看:
    jupyter nbconvert --show-config --config-dir
    
    找到输出里的template_path对应的路径,一般是~/.jupyter/nbconvert/templates(Windows用户路径类似C:\Users\你的用户名\.jupyter\nbconvert\templates)。
  2. 复制模板目录里的html文件夹,重命名为custom_html。
  3. 打开custom_html/tpl/index.html文件,找到目录相关的代码块,你可以修改标题编号的样式(比如缩进、字体大小、颜色等),或者调整目录的位置。
  4. 最后运行命令时指定自定义模板:
    jupyter nbconvert --to html --template custom_html --toc --EmbedImagesPreprocessor.enabled=True "你的笔记本文件名.ipynb"
    

这样就能得到完全符合你视觉需求的单一HTML文件了。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:05:56