Python Markdown转HTML知识大全
编程小白也能看懂的Markdown转换HTML详细指南,包含基础概念、使用方法、实用技巧和完整示例
基础概念
Markdown是什么?
Markdown是一种轻量级标记语言,用简单的符号(如#、*、-)就能设置文本格式,比如标题、列表、链接等。
为什么要转为HTML?
- HTML是网页的标准语言,浏览器只能显示HTML
- Markdown写起来简单,但最终需要变成HTML才能在网页上显示
- Python可以批量处理成百上千个Markdown文件
核心工具库
Python Markdown库
最常用的Markdown处理库,功能全面稳定:
- 安装命令:pip install markdown
- 基本用法:import markdown
- 核心方法:html = markdown.markdown(text)
其他可选库
- Mistune:速度非常快
- Markdown2:自带额外语法扩展
- CommonMark:严格遵循标准
基本转换流程
四步完成转换
- 安装库:pip install markdown
- 导入库:import markdown
- 读取Markdown文件或字符串
- 使用markdown.markdown()方法转换
# 最简单的转换示例
import markdown
text = "# 标题\\n这是一段**加粗**文字"
html = markdown.markdown(text)
print(html)
# 输出: <h1>标题</h1>
# <p>这是一段<strong>加粗</strong>文字</p>
文件读写操作
读取Markdown文件
# 从文件读取并转换
with open('input.md', 'r', encoding='utf-8') as f:
md_text = f.read()
html = markdown.markdown(md_text)
保存HTML文件
# 将结果写入HTML文件
with open('output.html', 'w', encoding='utf-8') as f:
f.write(f"<!DOCTYPE html>\\n")
f.write(f"<html><body>\\n")
f.write(html)
f.write(f"</body></html>")
扩展功能
常用扩展
- extra:包含表格、定义列表等高级功能
- codehilite:代码块语法高亮
- toc:自动生成目录
- nl2br:将换行符转换为<br>标签
# 使用扩展的示例
html = markdown.markdown(
md_text,
extensions=[
'markdown.extensions.extra',
'markdown.extensions.codehilite',
'markdown.extensions.toc'
]
)
提示: 使用codehilite扩展需要额外安装Pygments库:pip install Pygments
实用技巧
自定义HTML属性
给生成的HTML元素添加class或id:
# 添加class
html = markdown.markdown(
md_text,
extension_configs={
'markdown.extensions.attr_list': {}
}
)
# Markdown写法:
# # 标题 {#main-title}
# 会生成:<h1 id="main-title">标题</h1>
处理特殊内容
- 嵌入HTML:Markdown中可以混合使用HTML标签
- 防止XSS攻击:使用bleach库清理危险标签
- 自定义渲染器:完全控制HTML输出格式
完整示例:Markdown转HTML
Markdown 输入
# Python Markdown教程 这是一个使用Python将Markdown转换为HTML的示例。 ## 主要功能 - Markdown基本语法转换 - 支持代码高亮 - 生成目录 - 表格支持 ```python # Python示例代码 def hello_world(): print("Hello, Markdown!")