Skip to main content
UFOZoo

HTML转Markdown 在线HTML转MD

HTML转Markdown转换器:网页、邮件或文章一键转为干净Markdown格式,保留标题、列表与链接结构,适合笔记整理和内容发布。

更新于 2026-08-26

相关工具

功能特性

  • 即时将 HTML 转换为干净的 Markdown 语法
  • 支持标题、段落、链接、图片、列表、表格、代码块等
  • 输入即转换,实时预览结果
  • 一键切换是否保留链接
  • 可选转义特殊 Markdown 字符
  • 一键复制转换后的 Markdown 到剪贴板
  • 保存结果为 .md 文件
  • 优雅处理嵌套 HTML 元素和格式不规范的标记
  • 支持完整 HTML 文档和代码片段

使用方法

  1. 1将 HTML 代码粘贴到左侧输入区域。
  2. 2右侧面板实时更新 Markdown 输出。
  3. 3切换选项以保留链接或转义 Markdown 字符。
  4. 4复制结果到剪贴板,或保存为 .md 文件。
  5. 5使用清除按钮重置并重新开始。
  6. 6拖拽 .html 文件到输入区域加载内容并转换。
  7. 7启用保留链接选项让 Markdown 输出中包含可点击的 URL;禁用则只保留纯文本。
  8. 8当 HTML 包含可能被误解析为 Markdown 格式的字符(如 *、_、[)时,启用转义 Markdown 字符选项。
  9. 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'> 变为 ![text](url)。禁用后只保留可见文本。图片的 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 字符」选项来调整结果。