首页/Markdown/Markdown 转 HTML

Markdown 转 HTML

粘贴或拖入 Markdown,输出可直接使用的 HTML 代码;表格、任务列表、删除线都支持,标题可自动带锚点 id,预览与输出都经过净化。

「净化 HTML」和「原样 HTML」是两个不同的输出:预览区永远只显示净化后的版本,原样 HTML 只写进下面的代码框,本站不会把它注入页面。

正在载入工具…

这一页在做什么:Markdown 转 HTML

解析是自己写的 CommonMark 0.30 实现,与官方 spec 的 652 个用例逐字节比对,通过 626 个(一致率 96.0%);表格、任务列表、删除线这三个 GFM 扩展是另外单独测的:表格 ✓、任务列表 ✓、删除线 ✓、对齐 ✓(4/4 组样例通过)。

净化不是「过滤关键字」,是白名单重建。先用自带的 HTML 分词器把渲染结果解析成树,再按标签白名单 + 属性白名单重新序列化:script / style / iframe / object / embed / form / svg / math / template 等连内容一起丢,任何 on* 事件属性与 style 属性一律丢弃,协议只放 http(s)/mailto/ftp/tel 与站内相对路径,图片额外允许 data:image/*(但 data:image/svg+xml 不放行,SVG 里能塞脚本)。实测 净化用例 25/25 全部拦住,正常内容误伤 0 处(Node 实测)。

外链图片默认会被丢掉 src。预览是本站页面的一部分,留着 https://别的站/a.png 就等于替访客向第三方域名发请求,与站内「零外部域名请求」的口径冲突;这类图片在预览里显示成占位说明,用「原样 HTML」输出时仍保留。实测 外站 https:// 图片丢 src(1 处),站内相对路径与 data:image/png 保留。

两个可选开关是给「贴到别处」用的:标题带 id 锚点按 GitHub 的规则生成 slug(英文转小写、空格变连字符、中文保留、重名自动加 -1/-2),配合「页面锚点」写法就能站内跳转;表格加 class 便于你套自己的样式。

输入一段含表格、任务列表、代码块与图片的样例文档本地处理
操作实测结果
内置示例 → HTML示例文档 → 675 字符 HTML(含 h1/h2/table/checkbox/del/pre/blockquote)
输出字节相比源码源码 425 B → HTML 878 B(+107%)
拖入 .md 文件拖入 a.md 载入并即时转换
完整网页形态(可双击打开)完整网页形态输出 1988 字节,含 与内嵌 style(不依赖本站 CSS)
带脚本的文档转出的 HTML「净化 HTML」输出 0 处 script/on*/style 残留;切到「原样 HTML」保留 3 处,只进代码框,预览仍净化

只写一个裸网址(如 www.is46.com)不会自动变成链接——GFM 的自动链接这一步没实现,请用 <https://…> 或方括号写法;这条在语法速查页也列在「不支持」里。

公式($…$)、脚注、==高亮==、属性括号等扩展语法本站不做:它们需要额外库或不是标准语法,与其默默渲染错,不如按普通文本原样输出。