HTML转Markdown 在线HTML转MD
HTML转Markdown转换器:网页、邮件或文章一键转为干净Markdown格式,保留标题、列表与链接结构,适合笔记整理和内容发布。
更新于 2026-08-26
相关工具
功能特性
- 即时将 HTML 转换为干净的 Markdown 语法
- 支持标题、段落、链接、图片、列表、表格、代码块等
- 输入即转换,实时预览结果
- 一键切换是否保留链接
- 可选转义特殊 Markdown 字符
- 一键复制转换后的 Markdown 到剪贴板
- 保存结果为 .md 文件
- 优雅处理嵌套 HTML 元素和格式不规范的标记
- 支持完整 HTML 文档和代码片段
使用方法
- 1将 HTML 代码粘贴到左侧输入区域。
- 2右侧面板实时更新 Markdown 输出。
- 3切换选项以保留链接或转义 Markdown 字符。
- 4复制结果到剪贴板,或保存为 .md 文件。
- 5使用清除按钮重置并重新开始。
- 6拖拽 .html 文件到输入区域加载内容并转换。
- 7启用保留链接选项让 Markdown 输出中包含可点击的 URL;禁用则只保留纯文本。
- 8当 HTML 包含可能被误解析为 Markdown 格式的字符(如 *、_、[)时,启用转义 Markdown 字符选项。
- 9使用保存按钮将结果保存为 .md 文件,可直接用于 GitHub、GitLab 或文档平台。
常见问题
支持哪些 HTML 标签转换?
我们的转换器支持:标题(h1-h6)、段落(p)、链接(a)、图片(img)、加粗(b, strong)、斜体(i, em)、代码(code, pre)、列表(ul, ol, li)、引用(blockquote)、水平线(hr)、换行(br)和表格(table, thead, tbody, tr, th, td)。不支持的标签会被剥离,但内部文本会保留。
Python 或 npm 包怎么把 HTML 转成 Markdown?
Python:pip install markdownify 后用 markdownify.markdown(html),或使用 html2text 获得不同风格。JavaScript/npm:用 turndown(new TurndownService().turndown(html))。本工具在浏览器里完成了同样的转换,无需安装任何东西。
有把 HTML 转 Markdown 的 Chrome 扩展吗?
有。不少浏览器扩展能把当前页面或选中内容转为 Markdown(如 copy-as-markdown 类工具),但它们需要读取页面内容的权限。本网页工具粘贴 HTML 即可转换,不需要扩展、不申请权限,且 Firefox、Edge、Safari 等所有浏览器通用。
HTML 表格如何转换?
HTML 表格会转换为 Markdown 管道表格。第一行成为表头,由虚线分隔行隔开,后续每行成为数据行。大多数 Markdown 解析器都支持这种格式。
为什么转换后链接不见了?
「保留链接」关闭时,链接会被剥离,只保留可见的链接文本。打开该选项后,<a href='url'>text</a> 会转换为 [text](url)。需要纯文本、不要超链接时就关闭,这也是控制链接输出的唯一选项。
「转义 Markdown 字符」选项有什么作用?
启用后,特殊的 Markdown 字符(如 *, _, [, ], (, ), #, +, -, ., ! 和 \)会用反斜杠转义,防止它们在输出中被解释为 Markdown 格式。
可以转换完整的网页或 HTML 文档吗?
可以。粘贴任何网页的完整 HTML 或完整文档都可以。转换器处理所有支持的元素,提取 <body> 中的内容;<head>、<style>、<script> 和 <meta> 标签会被剥离,因为它们没有 Markdown 对应格式。具有 CSS 依赖的复杂布局可能无法完美转换,为获得最好效果,请复制页面的主要内容区域。
这个工具能处理内联 CSS 和 JavaScript 吗?
内联 CSS 和 JavaScript 不会转换为 Markdown。它们被视为不支持的标签并被剥离,但内部文本内容会保留。为获得更干净的结果,建议在转换前移除 script 和 style 元素。
为什么很长的文档转换很慢?
工具没有严格的输入限制,但超过 100,000 字符的文档会明显变慢。所有处理都在浏览器本地完成,速度取决于您的设备。大页面建议分段转换,每段都能即时出结果,之后再把 .md 文件合并即可。
HTML 列表如何转换?
无序列表(<ul>)转换为 Markdown 项目符号列表(-、* 或 +)。有序列表(<ol>)转换为编号列表(1.、2.、3.)。嵌套列表保留适当的缩进。含多段落的列表项也会正确处理。转换器保持列表层次结构,复杂嵌套列表仍然可读。
链接和图片如何处理?
启用保留链接时:<a href='url'>text</a> 变为 [text](url),<img src='url' alt='text'> 变为 。禁用后只保留可见文本。图片的 alt 文本成为 Markdown 图片的 alt 文本。href 和 src 属性中的相对 URL 保持不变。
为什么输出里全是反斜杠,看起来很乱?
这是「转义 Markdown 字符」选项的正常效果:每个特殊字符(*、_、#、[、]、括号等)都会加反斜杠,让 Markdown 渲染器按字面文本处理。如果源文本是普通叙述或代码、不需要格式化,请关闭转义选项,输出会更干净。只有当 HTML 包含会被误认为 Markdown 语法的字符时才需要开启。
为什么 class、ID 和其他 HTML 属性没有保留?
Markdown 没有属性的概念,它是纯文本格式。转换器保留可见内容和结构语义(标题、列表、链接、表格),但会丢弃 class、id、style 和 data 属性,因为没有标准 Markdown 渲染器能使用它们。如果需要这些属性,请保留原始 HTML,或使用允许原始 HTML 块的 Markdown 方言。
为什么在线 HTML 转 Markdown 转换器输出复杂的表格会乱?
Markdown 管道表格只支持简单网格:没有 rowspan/colspan 合并单元格,也不支持单元格内多行。复杂表格会被摊平成最接近的管道表格,合并单元格要么重复要么塌缩。这类表格建议保留原始 HTML:GitHub 和大多数渲染器都能正确显示原始 HTML 表格。或者先把表格改造成简单单元格再转换。
为什么这个 HTML 转 Markdown 转换器和 Python 的 markdownify、JS 的 turndown 输出不一样?
不同库的取舍不同:保留哪些标签、嵌套列表如何缩进、输出哪种表格风格、特殊字符是否转义。本浏览器转换器的输出接近 turndown 的默认风格(类 CommonMark)。Markdown 没有唯一的「正确」答案。选择在你的目标平台上渲染正确的输出,并用「保留链接」和「转义 Markdown 字符」选项来调整结果。