
md文件结构规律一个 block 总是成对出现MarkdownToken# 标题heading_open → inline → heading_close段落paragraph_open → inline → paragraph_close列表项list_item_open → inline → list_item_closecontent 只用于“行内”文本不用于结构 tokentypecontentheading_openinline整行文本包含 md 语法text文本内容imagealt 文本即 ![alt] 二、python包markdown-it1. markdown-it 将 Markdown 文档解析成一个扁平化的 Token 列表每个 Token 都有下列属性type—— “语法元素类型”关键决定 Token 代表哪种 Markdown 结构常见type包括语法type# 标题heading_open,heading_close段落paragraph_open,paragraph_close行内内容inline图片![]()image列表- itembullet_list_open,list_item_open等tag—— 对应 HTML 标签名称比如 h1, p, img类型tagheading_open###h3paragraph_openpimageimgcontent—— 文本内容只有 inline 或 text 子 Token 才有对于inline→ content 是整行的原始文本如docker images对于text→ content 是纯文字真正的文本节点对于image→ content 是alt内容比如image-2025...attrs—— HTML 属性图片的 src/alt/title 全在这里2. Markdown → Token 映射假设有markdown原文### 语法 docker images 使用代码将文档进行拆解from pathlib import Path from markdown_it import MarkdownIt md MarkdownIt() md_path Path(r./docker学习.md) md_text md_path.read_text(encodingutf-8) tokens md.parse(md_text) for t in tokens: print(ftype: {t.type}, tag: {t.tag}, content: {t.content}, attrs: {t.attrs})得到语义树heading_open (tag h3) inline - text(语法) heading_close (tag h3) paragraph_open inline - text(docker images) paragraph_close paragraph_open inline - image (altimage-2025..., srcdocker学习-use-images/...) paragraph_close这套结构适合用代码进行文档分析。3. markdown-it的一些用法简要示例from markdown_it import MarkdownIt # 安装 创建解析器 md MarkdownIt() # 将文本渲染成html格式字符串 text ### 标题 这是一个段落包含 **粗体** 和 *斜体*。  html md.render(text) print(html) # 将文本解析成token列表需要先将md文档逐行读取到变量里面 md_path Path(r./docker学习.md) md_text md_path.read_text(encodingutf-8) tokens md.parse(md_text) for t in tokens: print(ftype: {t.type}, tag: {t.tag}, content: {t.content}, attrs: {t.attrs})