HTML到Markdown转换器

将WordPress文章迁移到Hugo、将Confluence页面归档为笔记,或清理文档维基中的富文本邮件,这些操作均需将HTML转换为Markdown格式。该转换器会将标题、段落、列表、链接、图片和代码块转换为对应的Markdown格式,使内容在去除HTML冗余的同时保留原有结构。

如何将 HTML 转换为 Markdown

  1. 1

    粘贴 HTML

    整页内容、富文本邮件正文或片段,所有内容均会被解析。

  2. 2

    转换

    标题、段落、列表、链接、图片和代码块会被转换为 Markdown。

  3. 3

    复制 Markdown

    将输出结果保存到 Obsidian、Hugo、Jekyll、Notion 或 Git 仓库中。

将 HTML 映射为 Markdown

转换器遍历DOM结构,对每个识别出的元素生成Markdown代码。<div><span><section><article> 等包裹标签会被移除,其内容保留在正确的嵌套层级。

元素映射

HTML Markdown 输出
<h1><h6> ####### 的标题
<strong>, <b> **text**
<em>, <i> *text*
<code> 内联 `text`
<pre><code> 由三个反引号围起的代码块(若设置了语言则附带语言信息)
<a href> [text](url)
<img src alt> ![alt](src)
<ul><li> - item
<ol><li> 1. item
<blockquote> > quote
<hr> ---

其余元素如何处理

Markdown 无法表达所有 HTML 元素。没有对应 Markdown 格式的标签会被移除,仅保留其中的文本内容:

  • <table>:单元格内的文本得以保留,但表格结构会丢失。若结构重要,请使用支持表格的转换器。
  • <del><u> 等内联样式:文本保留,样式不保留。
  • <video><audio><iframe>:这些嵌入元素不会产生可在 Markdown 中显示的内容。
  • <details> / <summary>:内部文本得以保留,折叠展开组件不会保留。

如需无损往返转换,请从原始 Markdown 源转换,而不是从渲染后的 HTML 转换。

常见问题

标准的 <div><span> 包装器会被移除,其内容会在正确的嵌套层级中显示。仅用于布局的 div 标签在 Markdown 中会变为不可见,这正是文档格式所需的呈现效果。

是的。<pre><code class="language-js"> 将变为围栏代码块,其中 js 作为语言提示;未指定语言的缩进代码块则回退为普通围栏代码块。

<table> 单元格内的文本得以保留,但表格结构本身不会保留:行和列无法保留,因此结构会丢失。若结构重要,请使用支持表格的转换器。

几乎可以实现,但细微的格式设置(引用样式链接、带两个末位空格的硬换行、其他强调标记)可能需要调整。为确保无损数据传输,请保持原始Markdown格式。

相关工具

此工具还提供其他语言版本