Skip to content
HTML to Markdown
Tools

HTML to Markdown

Convert HTML to clean Markdown — pastes, imports files, and handles lists, tables and code.

HTML Input 0 words
Markdown Output 0 words

Runs entirely in your browser. Nothing is uploaded.

为什么要将HTML转换为Markdown?

Markdown已成为技术写作、文档撰写和开发者内容的标准纯文本格式。与HTML不同,Markdown原始形式即可直接阅读,兼容任意文本编辑器,与Git版本控制无缝集成,并被GitHub、GitLab、Notion、Obsidian及各主流静态网站生成器原生支持。当内容已经以HTML形式存在——来自CMS、抓取的文章、电子邮件或遗留文档平台——转换为Markdown可以解锁所有这些工作流程,无需手动重新排版。

2026年,还有一个更实际的原因:AI和大语言模型(LLM)管道强烈偏好Markdown而非原始HTML。研究表明,对于相同内容,干净的Markdown可将Token用量减少68–87%。在将文档输入检索增强生成(RAG)系统,或为微调模型准备训练数据时,先将HTML转换为Markdown已成为行业标准做法。Perplexity、ChatGPT和Gemini在处理网页内容前都会在内部将其转换为类Markdown格式——因此直接提供Markdown可跳过一个有损转换步骤。

基于DOM的HTML转Markdown转换原理

本工具不采用对原始HTML字符串应用脆弱正则表达式的方案——该方案在处理格式错误的标签、嵌套元素和边缘情况时容易出错——而是利用浏览器内置解析器将HTML解析为真实的DOM树,然后递归遍历每个节点,将元素类型映射到对应的Markdown语法。块级元素(标题、段落、列表、代码块)会添加双换行符以确保Markdown正确渲染。内联元素(粗体、斜体、代码、链接)在周围内容中直接生成Markdown语法。

这种基于DOM的方式与Turndown.js所采用的技术相同——Turndown.js是最主流的HTML转Markdown JavaScript库,每周npm下载量超过250万次。它能处理基于正则表达式的转换器所遗漏的边缘情况:blockquote中的嵌套列表、列表项中的代码、包裹图片的锚标签,以及深层嵌套的表格单元格。未知结构性HTML元素(如div、section和article)会直接透传其子元素内容,不会静默丢失任何内容。

常见使用场景:CMS迁移、Notion、GitHub文档

CMS迁移是最常见的专业使用场景。从WordPress、Confluence、SharePoint或Ghost迁移到现代Markdown平台的团队,会使用HTML转Markdown转换来处理导出的内容。WordPress的导出提供HTML内容块;Confluence将页面导出为HTML或XHTML,两者均可干净转换。转换后的Markdown文件可提交至Git仓库、通过Notion的Markdown导入功能导入,或输入Docusaurus、MkDocs、Astro等静态网站生成器。

个人知识管理是另一常见场景。Obsidian和Logseq等工具围绕Markdown文件构建。当您发现想要归档到知识库的文章或文档页面时,本转换器让您粘贴页面HTML,在几秒内获得干净的Markdown文件——保留结构,同时去除原始HTML标签的噪音。字数统计显示有助于确认转换过程中没有内容丢失。

Pandoc与浏览器转换器:如何选择?

Pandoc是专业流水线中文档转换的黄金标准——一款命令行工具,支持数十种格式之间的相互转换,包括HTML转Markdown、Markdown转PDF等。它能处理定义列表、脚注和复杂嵌套结构等边缘情况,并支持比任何JavaScript转换器更多的输出格式:MultiMarkdown、Pandoc Markdown、AsciiDoc、reStructuredText等。如果您正在服务器上构建自动化批量转换流水线,Pandoc是正确的选择。

对于一次性转换、快速内容迁移,或处理不应离开您设备的敏感材料,基于浏览器的转换器更快、更实用。无需安装,无需学习命令行,结果即时可得。本工具涵盖绝大多数实际HTML结构——标题、段落、列表、表格、代码块、链接、图片——是满足日常HTML转Markdown需求的实用选择。如果您需要在Node中脚本化批量转换,Markdownify和h2m是可靠的npm替代方案,但它们需要项目配置,本工具则完全省去这一步骤。

Markdown语法参考与输出兼容性

本工具遵循的主要Markdown约定:标题使用#至######对应h1–h6,粗体用**双星号**包裹,斜体用*单星号*,行内代码用反引号,代码块用三个反引号加可选语言标识符。链接格式为[文字](url),图片使用![替代文字](图片地址)。无序列表用短横线前缀,有序列表用数字加句号。引用块每行以>开头。

表格使用竖线分隔列,标题行后有分隔行(可用冒号表示对齐方式)。删除线用~~双波浪线~~包裹。输出遵循CommonMark及GitHub Flavored Markdown(GFM)扩展规范,兼容GitHub、GitLab、VS Code预览、Notion、Obsidian及几乎所有现代Markdown渲染器。如果不同平台之间出现渲染差异,几乎总是由于该平台使用了非标准Markdown方言,而非输出本身的问题。

隐私保护、无限制使用与移动端支持

HTML转Markdown转换器100%在您的浏览器中运行。没有任何内容被上传至服务器,没有任何记录,也无需注册账号。这意味着粘贴机密文档、内部Wiki或客户内容都是安全的——数据永远不会离开您的设备。页面加载后甚至可以断网,转换器依然正常工作,这是没有服务器参与的最直接证明。

没有文件大小限制,没有每日转换配额,也没有付费墙。在服务器端处理文件的在线转换器(如某些Pandoc网页包装器或文档转换API)通常将文件大小限制在1–5 MB,或限制免费用户每天只能转换几次。本工具没有这些限制。它也支持iPhone和Android——在手机浏览器中粘贴HTML,完成转换,然后将Markdown结果直接复制到Notion、Obsidian或任何其他应用,完全免费,无需注册,无需下载任何应用。

Frequently asked questions

这个转换器支持哪些HTML元素?

转换器支持标题(h1–h6)、段落、粗体、斜体、删除线、行内代码、围栏代码块、引用块、水平分割线、链接、图片、有序列表、无序列表、嵌套列表和表格——覆盖CommonMark和GitHub Flavored Markdown(GFM)的完整功能集。div、section、article等未知结构性元素会透明传递其子内容,确保内容不丢失。来自CMS导出、抓取的文章或文档页面的大多数实际HTML均可干净转换,无需您进行任何后处理。

这个工具与Pandoc或Turndown.js有什么区别?

Pandoc是功能强大的命令行转换器,但需要安装、终端操作以及了解其参数选项。它适合自动化服务端流水线,对于一次性转换来说过于复杂。Turndown.js是最常用的JavaScript HTML转Markdown库——每周npm下载量超过250万次,GitHub Stars超过10800——本工具采用相同的基于DOM的解析方式,具备同等可靠性。区别在于一切都在您的浏览器中运行:无需安装,无需命令行,无需服务器往返,文件不会离开您的设备。Turndown.js需要配置Node项目;本工具则不需要。

为什么要将HTML转换为Markdown?

Markdown是技术写作、文档撰写和内容管理的标准纯文本格式。将HTML转换为Markdown后,您可以将内容导入Notion或Obsidian,将其与代码一起提交到Git仓库,通过Astro、Hugo或Jekyll等静态网站生成器发布,或输入AI模型和大语言模型。2024年发布的研究表明,与原始HTML相比,Markdown在与大语言模型配合使用时可将Token用量减少68–87%——在构建RAG管道或准备微调数据集时,这是真实的成本和准确性差距。

可以用于CMS迁移吗?

可以——CMS迁移是最常见的专业使用场景之一。粘贴从WordPress、Confluence、SharePoint、Ghost或任何其他平台导出的HTML,即可获得可导入新系统的干净Markdown。WordPress的导出提供HTML内容块;Confluence将页面导出为HTML或XHTML——两者均可干净转换。为获得最佳结果,建议只粘贴内容正文,而不是包含导航和页脚的完整页面HTML。团队已使用浏览器端HTML转Markdown转换在两天内完成了150–200页文档站点的迁移,完全无需使用命令行。

HTML表格如何转换为Markdown?

表格转换为GitHub Flavored Markdown(GFM)管道表格格式,标题行后有一行短横线分隔行。该格式适用于GitHub、GitLab、VS Code预览、Notion、Obsidian、Docusaurus及几乎所有现代Markdown渲染器。嵌套表格会被扁平化,因为标准Markdown原生不支持嵌套表格。列对齐方式——通过align属性或CSS的text-align设置的左对齐、居中、右对齐——通过分隔行中的冒号位置保留(例如::--- 表示左对齐,:---: 表示居中,---: 表示右对齐)。

转换器是否支持离线使用?

支持。转换完全在您的浏览器中使用内置DOM解析器完成——没有文件被上传,页面加载后也不需要网络连接。这使其可以安全处理机密HTML,如内部文档、专有API参考或不应离开您设备的客户资料。您可以验证这一点:打开浏览器开发者工具,切换到网络选项卡,确认粘贴HTML并触发转换时没有任何网络请求发出。没有任何数据离开您的设备。

「删除多余空白」功能有什么作用?

它会删除Markdown输出中每行末尾的空格和制表符,并将多个连续空行合并为单个空行。这保持文件整洁,避免可能影响严格Markdown解析器渲染的不可见空白字符——尤其是GitHub,它会将尾随空白标记为lint问题。这也使输出更易于直接放入运行空白检查的文档工具中。几乎所有情况下都可以安全启用此选项。只有极少数情况下尾随空白才具有语义意义。

嵌套列表能正确转换吗?

可以。嵌套的ul和ol元素会被递归处理,每个层级在Markdown输出中都有正确的缩进。混合嵌套——有序列表嵌套在无序列表中,或反之——也能正确处理。例如,有序列表中的三级嵌套无序列表,每个层级都会获得正确的四个空格缩进,这是CommonMark标准。这是基于正则表达式的转换器经常出错并产生损坏Markdown的边缘情况之一,而基于DOM的解析则能可靠地处理。

输出使用哪种Markdown格式?

输出遵循CommonMark规范,并带有GitHub Flavored Markdown(GFM)扩展,支持表格和删除线。CommonMark是大多数平台使用的标准规范,GFM添加了管道表格语法和GitHub、GitLab、VS Code均支持的~~删除线~~。这使输出兼容GitHub、GitLab、VS Code、Notion、Obsidian、Docusaurus、MkDocs及大多数现代Markdown渲染器。如果您需要不含GFM扩展的严格CommonMark,表格是唯一会有差异的元素——其他所有内容完全相同。

可以将完整网页转换为Markdown吗?

您可以粘贴任何HTML片段或完整页面主体。为获得最佳效果,建议只粘贴主要内容区域,而不是包含导航、侧边栏和页脚的完整文档,以确保输出专注于有意义的内容。大多数开发者从浏览器开发者工具的元素面板中复制文章或文档的div(右键 → 复制 → 复制outerHTML)。这样可以获得干净的内容HTML,去除结构性页面框架。转换器也支持完整页面HTML,但输出将包含转换为链接平铺列表的导航文本,这通常不是您想要的结果。

2026年为什么Markdown比HTML更适合AI和大语言模型?

Perplexity、ChatGPT和Gemini等AI系统现在会读取、分块并重用网络内容来生成答案。Markdown是它们首选的输入格式,因为它剥去了消耗Token却不增加语义含义的HTML结构标签。用<p class="article-body">标签包裹的段落比同一段落的纯Markdown消耗更多Token。2024年发布的研究表明,对于相同内容,Markdown与原始HTML相比可将Token用量减少68–87%——这直接降低了API成本,并提高了检索增强生成(RAG)管道的信噪比。

行内代码和代码块如何处理?

行内代码元素(不在pre中的code标签)用单个反引号包裹。代码块(pre > code元素)用三个反引号的围栏块包裹,这是CommonMark和GFM标准。如果code元素有如'language-python'或'lang-python'这样的class,语言标识符会被提取并保留在开头围栏中用于语法高亮。从GitHub README页面或文档站点转换的代码块会在输出中保留其语言标签——因此HTML中的语法高亮在Markdown中得以保留。

这个工具与Markdownify或h2m相比如何?

Markdownify和h2m是用于在构建流水线中以编程方式进行HTML转Markdown转换的Node.js npm包。当您需要在脚本中自动转换数百个文件时,它们是正确的选择。本浏览器工具覆盖了它们不擅长的使用场景:快速一次性转换、无法分享给服务器的内容,以及完全不想配置Node项目的情况。转换质量相近——三者都使用基于DOM的解析而非正则表达式——但本工具添加了实时预览、复制按钮和字符/字数统计,使其更适合内容工作。

这个工具在iPhone和Android上可以使用吗?

可以,转换器在移动端浏览器上完全正常工作。从剪贴板粘贴HTML,触发转换,复制Markdown结果——全程可在手机或平板上完成。界面会适应较小屏幕,面板纵向排列。已在iOS 17的Safari和Android 14的Chrome上测试通过。一个常见的移动端使用场景:从浏览器的分享菜单获取文章HTML,转换后直接将Markdown粘贴到同一设备上的Obsidian或Notion,完全无需桌面电脑。无需注册,无需下载应用,无使用限制。

HTML注释和script/style标签如何处理?

HTML注释(<!-- ... -->)会从输出中删除,因为Markdown没有注释语法,且注释很少是实际内容的一部分。Script标签及其内容也会被丢弃——JavaScript在Markdown中没有意义。Style标签和内联style属性也会被移除;CSS样式无法转换为Markdown,语义含义(粗体、斜体、标题)通过元素类型而非视觉样式来保留。如果span通过CSS而非strong或b标签实现粗体效果,该样式不会被保留——这对于内容格式转换来说是正确的行为。

有文件大小或字符数限制吗?

没有。没有服务器参与,因此除浏览器内存限制外没有任何大小限制。实际上,浏览器DOM解析器可以处理数兆字节的HTML而不出现问题——远超任何真实CMS页面的大小。如果您正在转换极大的HTML文件(完整的书籍导出、非常长的抓取文章),分段粘贴而非一次性全部粘贴可获得更清晰的输出。转换本身无论文件大小都在毫秒级完成,因为它直接在浏览器标签页的JavaScript中运行。

Related tools

查看全部工具