跳转至

Python Markdown

概念与用途

Python-Markdown 将 Markdown 文本转换为 HTML,并通过扩展支持表格、目录、代码块等语法。MkDocs 等文档工具使用这一生态,但 Markdown 本身不是安全的 HTML 清洗器。

核心 API

本教程建议安装 python -m pip install "Markdown>=3.5"。它只需要本地 Python 环境,不依赖外部服务;markdown.markdown(text, extensions=...) 返回 HTML。

import markdown

source = """# 标题

| 名称 | 分数 |
| --- | ---: |
| Alice | 95 |
"""
html = markdown.markdown(source, extensions=["tables"])
print(html)

核心配置

参数 用途 注意
extensions 启用表格、目录等 固定列表与版本
extension_configs 扩展参数 配置属于构建契约
output_format HTML/XHTML 风格 与下游模板一致
Markdown.reset() 复用实例前重置 防跨文档状态残留

示例:复用转换器

import markdown

converter = markdown.Markdown(extensions=["fenced_code"])
for source in ("# First", "```python\nprint('ok')\n```"):
    print(converter.convert(source))
    converter.reset()

转换过程无网络超时问题,但输入大小和扩展执行时间仍需限制。若扩展会读取文件或执行外部程序,应把它视为代码依赖并审查其权限与资源清理。

常见错误与安全注意

  • 不可信 Markdown 转出的 HTML 仍可能包含危险标签或链接,展示前使用专业 HTML 清洗器。
  • 扩展组合会改变语法行为,项目应固定扩展列表和版本。
  • 相对链接和资源路径取决于最终发布位置,构建时应检查死链。