当前位置: 首页 > 图灵资讯 > 行业资讯> Jupyter Notebook怎么使用Markdown

Jupyter Notebook怎么使用Markdown

来源:图灵python
时间: 2026-08-21 11:26:00
Jupyter Notebok中Markdown渲染失败的主要原因是单元格没有正确设置为Markdown类型:ESC进入命令模式后,按M键切换,然后用Shift+Enter渲染;语法上支持ComonMark子集,但不兼容GFM的所有特性。例如,表格需要空行,删除线可能失效,引用链接不支持,当地图像路径中的空格需要URL编码。

直接得出结论:Jupyter Notebook 里写 Markdown,本质是将单元格设置为单元格 Markdown 类型,然后使用标准 Markdown 语法写作,但如果不注意几个关键点,就会渲染失败或显示异常。

如何将单元格变成单元格? Markdown 单元格

并不是所有的单元格都能渲染 Markdown —— 必须是显式切换类型。常见的错误是直接的 Code 单元格里写 # 标题,运行结果后,原始输出不转换为标题。

  • 选择目标单元格,按 Esc 退出编辑模式(进入命令模式)
  • M 键(不是 Shift+M,就是单击 M),将显示单元格左上角 Markdown
  • 再按 Enter 输入内容后进入编辑 Shift + Enter 渲染
  • 如果误切到 Raw NBConvertHeading(已弃用),# 不生效,必须切回 Markdown
哪些 Markdown 语法在 Jupyter 可以在里面使用,哪些会失效

Jupyter 的 Markdown 渲染器基于 nbconvert,支持 CommonMark 子集,但并不完全兼容 GitHub Flavored Markdown(GFM)。容易踩坑的是:

  • ```python 代码块高亮有效,但是 ~~删除线~~ 可能不会渲染旧版内核(推荐使用) <del>文本</del>
  • 表格前后必须有空行,否则将被视为普通文本;列出对齐符号 |:---|---:|:--:| 有效,但省略对齐符也可以渲染
  • ![alt](path.jpg) 支持本地路径(相对于当前路径(相对于当前路径) .ipynb 目录),但路径中的空间需要 URL 编码,比如 my%20pic.jpg
  • [链接文本](https://example.com) 正常,但 [链接文本][ref] 引用写法不支持(需要写成内联)
想插入 HTML 或 LaTeX 公式怎么办

Markdown 允许嵌入单元格本身 HTML 和 LaTeX,但语法边界要清晰:

Editor.md构建Markdown富文本编辑器

Editor.md构建Markdown富文本编辑器

下载

  • 行内公式用 $a^2 + b^2 = c^2$,独立公式用 $$\int_0^\infty e^{-x}dx = 1$$(双美元符)(双美元符)
  • HTML 标签如 <img src="logo.png" width="80"> 可以直接写,但不能混在一起 Markdown 段落中间-整段要么纯要么纯 Markdown,要么纯 HTML 块
  • 如果用了 <p><p>...</p></p>,记住要关闭标签,否则以后再关闭标签。 Markdown 可能是错位渲染
  • 想让某段文本强行换行?不要只敲回车,最后加两个空间,也不要用 <br>(更可靠)
为什么写目录却不生成,或者点击跳转失败?

Jupyter 原生不支持自动生成目录(TOC),所谓的“目录”实际上是由第三方扩展实现的,例如 jupyter_nbextensions_configurator

  • 在没有扩展的情况下,写 [TOC][toc] 纯无效字符串,不会渲染成导航
  • 安装扩展后,需要在 Notebook 左侧菜单点 Add notebook ToC cell,它会插入一个特殊的 HTML+JS 单元格,不是手动写的 Markdown
  • 依赖目录级别 ####### 但是,如果标题中含有标题语法, _* 锚点链接在未转换字符时可能会断裂
  • 导出为 HTML 后目录仍然可用,但导出 PDF 时 TOC 需通过 nbconvert --to pdf --no-paginate 配合 LaTeX 模板才生效

真正的麻烦不是语法本身,而是语法本身。 Markdown 单元格和 Code 单元格的类型混淆,渲染时机错位,以及当地路径和导出场景之间的行为差异——如果不再次验证这些细节,很容易认为“如果你写对了,就没有效果”。