📝
免费 HTML 转 Markdown 转换器
将 HTML 转为干净的 Markdown。处理标题、列表、链接、图片、代码块、表格和引用块。非常适合从 CMS 导出内容。
加载后可离线使用
在左侧粘贴 HTML,右侧将显示整洁的 Markdown。Markdown 比 HTML 更简单,样式、脚本和复杂表格将被简化或省略。
提示:粘贴从网页、Word 或 Google Docs 复制的富文本 - 其 HTML 会自动捕获。
Markdown 输出
Markdown 输出将显示在此处…常见用途
- 将博客内容迁移到Markdown将旧的WordPress、Medium或其他CMS文章转换为Markdown,以用于静态站点生成器。
- 将电子邮件内容转换为Markdown从HTML电子邮件或网络文章中提取文本,并转换为纯Markdown供笔记应用使用。
- 将HTML文档转换为Markdown将旧版HTML文档迁移到基于Markdown的文档系统(Docusaurus、GitBook、MkDocs)。
- CMS导出清理清理从CMS导出的混乱HTML,并将其转换为版本控制友好的Markdown。
- 为LLM提示准备HTML内容将HTML内容转换为干净的Markdown,以在ChatGPT、Claude或其他LLM提示中使用。
工作原理
此转换器围绕手写的零依赖正则流水线构建——不导入任何第三方库。整个转换通过 React useMemo 调用在你的浏览器中运行,输入时实时更新输出。
- 1粘贴检测截获富文本ClipboardEvent 处理程序会在浏览器粘贴纯文本之前从剪贴板读取 text/html 格式。这意味着直接从网页、Google Docs 或 Word 粘贴时会自动获取原始 HTML 标记——无需先查看源代码。
- 2多轮正则流水线去除并转换标签转换器按严格顺序运行多轮正则:先移除 <head>、<script>、<style> 和 HTML 注释,然后将围栏代码块暂存到空字节占位符后面,防止后续处理破坏代码内容。之后的各轮分别处理标题(h1–h6)、引用块、图片、链接、粗体/斜体/删除线、有序和无序列表以及基本的 GFM 管道表格——每一轮针对一类特定标签。
- 3实体解码与空白规范化所有标签去除后,专门的 decodeEntities 函数使用 String.fromCodePoint 解析命名实体(&、< 等)以及十进制和十六进制数字字符引用('、')。格式错误或超出范围的码点会被替换为 Unicode 替换字符,而不是抛出错误。然后规范化行尾空格、连续空行和多余空白。
- 4恢复受保护的代码片段占位符系统(以空字节分隔的索引)在去除标签、解码和折叠空白完成之后最后展开。这可以防止代码字面量中的实体序列被解码两次——这是简单的 HTML 转 Markdown 转换器中常见的双重解码错误。