markdown.markdown() 默认仅支持基础语法,表格、目录等功能需手动启用 "tables" 和 "toc" 等扩展;否则 |a|b| 渲染为纯文本,[toc] 不生成目录,标题也无锚点id。

直接用 markdown 库的 markdown() 函数就能转,但默认不支持表格、代码高亮、目录等常见扩展,必须手动启用扩展才能正常渲染。
为什么 markdown.markdown() 转出来的 HTML 没有表格或标题锚点
因为 markdown 库默认只启用基础语法(如标题、列表、强调),像表格(tables)、自动目录(toc)、代码块语法高亮(需配合 pygments)都属于可选扩展,不显式传入就不会生效。
- 常见缺失现象:
| 列1 | 列2 |渲染成纯文本,不是<table>;<code>[TOC]不生成目录;```python块没class="highlight" - 扩展名必须是字符串,比如
"tables"、"toc"、"fenced_code"(启用 ``` 代码块) - 扩展顺序无关,但部分扩展有依赖,例如
"toc"需要"extra"或单独启用(新版推荐直接用"toc")
怎样启用表格和目录扩展
把扩展名作为 extensions 参数传给 markdown.markdown(),类型是列表。注意 "toc" 扩展会自动为标题添加 id 属性,方便锚链接跳转。
import markdown md_text = "# 标题\n\n| A | B |\n|---|---|\n| 1 | 2 |\n\n[TOC]" <p>html = markdown.markdown(md_text, extensions=["tables", "toc"])</p><h1>输出包含 </h1>
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











