跳到正文
DevTools / Markdown 编辑器

Markdown 编辑器

Markdown 是 README、工单、文档站点和内部笔记的通用语言,写作时有实时预览,意味着不必再凭记忆猜表格语法是否正确。本编辑器把源码与预览分屏显示,为没人记得住的语法提供工具栏,随输入实时构建标题大纲,并能导出 Markdown 原文或自包含的 HTML 文件——其中的内联 HTML 已通过白名单清洗。

完全在浏览器本地运行——不会上传任何内容。

Markdown
预览
词数
84
字符数
704
行数
29
阅读时间
<1 min

大纲

  • # Release notes — v0.2
  • ## Highlights
  • ## Conversion snippet
  • ## Table

工作原理

Markdown 是一套由解析器转换成 HTML 的纯文本约定。核心语法——行首井号表示的标题、星号或下划线表示的强调、方括号加圆括号表示的链接与图片、列表、引用和围栏代码块——是稳定的,由 CommonMark 规范定义。除此之外的一切都来自扩展,这就是同一份文档在两个系统里渲染结果不同的原因,也是这里提供开关的原因:GitHub 风格 Markdown 增加了表格、任务列表、删除线和自动链接,而“换行”选项决定段落内的单个换行是被渲染成换行还是被折叠成空格。

预览经过清洗,因为 Markdown 允许内联原始 HTML,而来自任何地方的原始 HTML 都是脚本注入风险。渲染结果会由浏览器自身的 HTML 解析器解析,并从白名单重建:已知安全的元素与属性保留下来,script、style、iframe、form 和 SVG 被丢弃,所有事件处理属性被移除,javascript: 协议被拒绝,指向站外的链接会被加上 rel noopener 和 nofollow。最终得到的是一个能渲染安全部分、且什么都不会执行的预览。

大纲由源码而非渲染后的 DOM 推导,这一点很重要,因为渲染器是异步惰性加载的,而大纲需要在每次按键时即时更新。围栏代码块会被跟踪,因此 shell 注释里的井号不会被误认为标题——这是任何朴素的标题扫描在含代码文档上都会犯的错。词数、字符数、行数和阅读时间统计来自同一遍处理。

导出可以产出 Markdown 原文,也可以产出包含 doctype、UTF-8 meta 标签和已清洗正文的完整 HTML 文档。HTML 导出刻意保持自包含,除语义元素外不加样式,因此可以直接在浏览器中打开、粘贴进接受 HTML 的 CMS,或作为加样式页面的起点。它不会保留目标渲染器不支持的 Markdown 扩展——表格会变成 HTML 表格并保留,但某个实现独有的脚注语法可能无法幸存。

常见应用场景

  • 编写 README 并在提交前确认表格与代码块能正确渲染。
  • 起草发布说明或文档,并导出为 HTML 供 CMS 或邮件使用。
  • 预览别人写的 Markdown 文件,看清其预期结构。
  • 把 Markdown 文档转成 HTML,粘贴进不支持 Markdown 的系统。
  • 查看长文档的大纲,检查标题层级是否一致。
  • 粘贴不受信任的 Markdown,在发布到任何地方之前先看清它的原始 HTML 会做什么。

最后更新: 2026-10-14

常见问题解答

这里用的是哪种 Markdown 方言?

CommonMark 加上 GitHub 风格 Markdown 的表格、任务列表、删除线和自动链接扩展,每一项都可以单独开关。GFM 是应用最广的扩展集,因此在这里渲染正确的文档,在 GitHub、多数静态站点生成器和多数工单系统中也会渲染正确。实现特有的额外语法,例如脚注、定义列表和数学块,没有启用,会以字面文本显示。

粘贴不受信任的 Markdown 安全吗?

预览是安全的,因为渲染出的 HTML 在插入之前会从白名单重建——脚本、事件处理属性、iframe 和 javascript: 协议都被剥掉,恶意文档无法在预览中执行任何东西。导出的 HTML 也经过同样的清洗。你不该做的是把不受信任文档的源码复制到某个不做清洗就渲染 Markdown 的系统里,因为那里的风险属于那个系统,而不属于本工具。

为什么预览里看不到单个换行?

因为 CommonMark 把段落内的单个换行当作空格并折叠掉,这是刻意的:它让你可以为了源码可读性折行而不影响输出。行尾加两个空格或一个反斜杠可以强制换行;“换行”开关则让每个单独换行都产生一次换行,这也是许多聊天应用和工单系统的行为。选择与你写作目标系统一致的那一种即可。

可以离线使用吗?

页面加载完成之后可以。Markdown 解析器会在你第一次输入时惰性加载,此后渲染、清洗、统计、导出全部在本地完成,不需要网络。因此它可以在飞机上或隔离网络环境中使用,也意味着你正在写的文档永远不会被传输——对于描述你不愿向第三方透露的系统的内部文档而言,这一点很重要。

相关工具