跳到主内容
UniKit

HTML 转 Markdown

HTML 代码转换为 Markdown:自研解析器覆盖标题 h1–h6、段落、粗体 / 斜体 / 删除线、行内代码与带语言的围栏代码块、嵌套列表、链接、图片、引用、水平线与 GFM 表格,并解码 HTML 实体。

浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。

Markdown

在上方输入 HTML,结果会实时显示在这里。

这个工具能做什么

  • 把从网页、CMS 或富文本编辑器复制出来的 HTML 正文转成 Markdown,粘进 README、Wiki 或博客后台。
  • 迁移文档站:把一批 HTML 页面转成 Markdown 源文件,交给静态站点生成器重新渲染。
  • 整理邮件或工单里的富文本内容,去掉 script / style 之类的噪声,只留下可读的正文。
  • 把 GFM 表格、嵌套列表、带语言的代码块这些结构原样保留下来,而不是压成一整段纯文本。

示例

输入

<h1>标题</h1><p>正文 <strong>加粗</strong> 与 <a href="https://a.com">链接</a></p>

输出

# 标题

正文 **加粗** 与 [链接](https://a.com)

script / style / head 的内容会被丢弃,pre 里的代码原样放进围栏代码块并保留 language-xxx 语言标记。

常见问题

转换结果是 CommonMark 还是 GFM?

以 CommonMark 为基准,表格用的是 GitHub Flavored Markdown 的语法(`| a | b |` 加对齐分隔线),删除线用 `~~text~~`。这两套语法在 GitHub、GitLab、多数静态站点生成器里都能直接渲染。

嵌套列表能正确缩进吗?

能。每一层嵌套都会按父级项目符号的宽度缩进,有序列表还会读取 `<ol start="3">` 的起始序号,生成 `3.` 而不是 `1.`。

代码块的语言是怎么来的?

来自 `<pre><code class="language-xxx">` 里的类名,会写成 ```xxx 的围栏;没有类名就用不带语言的围栏。代码里的 HTML 实体会被解码,但代码本身不会被转义或改写。

正文里的 * _ [ ] 这些符号会被转义吗?

会。文本节点里的 `\`、反引号、`*`、`_`、`[`、`]` 会加上反斜杠,避免它们被当成 Markdown 语法。表格单元格里的 `|` 也会转义,防止把表格拆散。

标签没闭合会报错吗?

不会。HTML 本来就允许省略 `</p>`、`</li>` 这类结束标签,工具会自动补齐;只有标签缺少 `>`、注释缺少 `-->` 这种真正截断的输入才会报错。

关键词:html to markdownhtml2mdmarkdown converterhtml 转 markdownhtml 转 md富文本转换gfm 表格代码块嵌套列表实体解码文档转换

同类工具