首页 › 编程开发 › Markdown转HTML
🔧

Markdown转HTML

左侧写 Markdown 右侧实时出 HTML:表格、任务列表、代码围栏、标题锚点与目录都按 CommonMark 与 GFM 规则解析,可下载成品或直接复制

Markdown 编辑与预览
实时预览
编码

本工具只做 Markdown 到 HTML 的格式转换,不是 HTML 清理器;关闭「允许 HTML」时会转义尖括号与引号,开启后原始 HTML 会原样输出。默认按 CommonMark 规则解析,GFM 扩展覆盖表格、删除线、任务列表与裸链接自动链接。

字符 0 · 行 0 · HTML 0 字节

工具介绍

把 Markdown 转成 HTML 这件事看起来只是换标签,实际麻烦在于规则细节:表格为什么没渲染出来、段落里换行为什么被吃掉、代码块里的尖括号要不要自己转义、目录锚点怎么和标题对上。这个工具把这些规则写成可开关的选项,右侧预览所见即所得,左侧改一个字符右侧立刻变,转换结果可以直接复制走或者下载成文件。

支持的语法

  • 块级:# 到 ###### 标题与 ===、--- 下划线式标题;段落;围栏代码块(三个反引号或波浪号,带语言名时输出 class="language-xxx");四个空格起手的缩进代码块;可嵌套的引用;无序列表用 - * +,有序列表用 1. 或 1),起始数字会保留成 <ol start>;分隔线 --- *** ___
  • 列表细节:按缩进层级嵌套,换用另一种标记符号会另起一个列表,条目之间留空行会生成松散列表(条目包成 <p>),GFM 任务列表复选框输出为不可勾选的 input,关闭 GFM 时保留原文
  • 表格:需要表头加分隔行,:--- ---: :---: 分别对应左中右对齐,输出为 style="text-align:...";行内单元格不足会补齐,多余会提示并忽略,单元格里的竖线用 \| 转义
  • 行内:**粗**、*斜*、***粗斜***、_下划线斜_、~~删除线~~、`行内代码`(一行里用两个或三个反引号包反引号也可以),行内代码优先级高于强调标记,所以 `*a*` 不会被当成斜体
  • 链接与图片:行内式 [文字](url "标题")、参考式 [文字][标记] 配 [标记]: url、尖括号自动链接 <https://…> 与 <mailto:…>、裸链接自动识别、图片 ![alt](src)
  • 换行:行末两个空格或一个反斜杠是硬换行,输出 <br>;普通换行默认并入同一段落,勾选「软换行转 br」后每行都断
  • 转义:反斜杠转义 \* 这类符号,未识别的字符按字面输出

标题锚点与目录

  • 每个标题按文字生成 slug 作为 id,中文保留、标点去掉、空格变连字符,同名标题自动追加 -1、-2,长文里不会出现锚点互相覆盖
  • 开启「生成目录」后在正文前插入嵌套的 <ul class="md-toc">,层级对应标题级别,配合锚点就是一套页内导航
  • 关闭「标题锚点」则输出干净的 <h2>,适合粘贴到已经自带目录的系统里

关于原始 HTML

  • 默认关闭「允许 HTML」:正文里的尖括号与引号全部转义,写 <script> 只会显示成文字,静态博客正文、评论区这类场景更安全
  • 打开后原样输出源码里的 HTML 块,方便嵌入 <details>、表格合并单元格、<img width> 这类 Markdown 表达不了的结构;此时请确保内容是自己写的
  • 代码块里的尖括号无论开关都会转义,贴代码不会被解析成标签

复制与下载

  • 复制 HTML:直接把片段粘进模板或富文本源码视图
  • 复制后转义:把结果里的 < > & " 再转一层实体,用来写文档说明、教程示例,或者往 HTML 里嵌一段 HTML
  • 下载 .md / .html:HTML 文件带 <meta charset>,编码下拉里可以选带 BOM 的 UTF-8,避免 Windows 记事本或老浏览器打开时中文乱码
  • 正文存在浏览器本地,刷新或下次打开会自动回到上次的文本和选项

常见问题

  • 为什么我写的表格没变成表格?最常见的三种情况:缺分隔行(表头下面那行 |---|---|)、关闭了 GFM 扩展、整张表前后没空行而被当成正续。缺分隔行或某行单元格多于表头时,页面下方会给出解析提示
  • 段落里的换行为什么被吃掉?Markdown 的规则是单个换行不算换行,需要行末留两个空格、写一个反斜杠,或者干脆空一行分段;嫌麻烦就勾上「软换行转 br」
  • 和 HTML 格式化工具的区别?本工具做的是标记语言到标签的转换,转换完的 HTML 如果想再排版缩进、换行对齐,可以用下面的 HTML 格式化链接
  • 支持脚注、定义列表、代码高亮吗?不支持。脚注与定义列表属于各家扩展,没有统一实现;这里也不引入高亮库,只输出 class="language-x",交给你的站点模板去做着色
  • 开启「允许 HTML」有风险吗?有。这个模式下你写的标签会原样进入结果,粘贴来的内容里若带脚本就会被执行。只是想把别人给的 HTML 洗成纯文本的话,别开这个开关
  • 内容会上传吗?不会。解析、预览、复制、下载全部在浏览器里完成,页面不发任何请求,断网也能用
  • 长文档会卡吗?自动转换有轻微防抖,几万字级别的文档也不会边打字边卡顿;统计行会显示源字符数、行数与生成 HTML 的字节数,便于估算体积
  • 转换提示和报错有什么用?解析出问题时会带行号提示(例如代码围栏没有闭合会按到文末处理并告诉你位置),不会静默吞掉内容

转好的 HTML 想再整理缩进用 HTML 格式化;只想要里面的纯文字用 HTML 去标签;要把成段标签当文本贴进代码里用 HTML 实体编码;改完一版想对比差异用 文本对比;统计正文字数与段落用 字数统计。