Markdown 删除线生成器

输入文字、选择波浪线或 HTML 写法,即可复制到处都能正常渲染的删除线语法。全部计算都在你的浏览器本地完成。

免费 · 无需注册 · 全程在浏览器内运行最后更新

Markdown 中怎么给文字加删除线?

在文字两侧各加两个波浪线即可:`~~文字~~`,渲染后会生成带横线的 <del> 元素。需要注意的是,删除线属于 GitHub Flavored Markdown 扩展语法,并不在 CommonMark 核心规范中,因此 GitHub、GitLab、Discord 都支持,而严格的 CommonMark 解析器只能改用 HTML 标签 `<del>文字</del>`。

markdown
~~这段文字带删除线~~

渲染为带横线的文字,在生成的 HTML 中对应一个 <del> 元素。

在线使用 Markdown 删除线生成器

参数设置

删除线写法

输出结果

Markdown 删除线语法详解

删除线的作用是「划掉但仍然可读」,非常适合标注修订、废弃的要求、已完成的任务和旧价格。写法一共三种,选哪一种取决于目标平台的解析器,而不是个人偏好。

双波浪线(推荐)

GitHub Flavored Markdown 的标准写法。README、Issue、Pull Request、Discord 消息、Obsidian 笔记,以及任何兼容 GFM 的解析器都适用。

markdown
会议改到 ~~周一下午三点~~ 周二下午两点。

渲染结果:会议改到 周一下午三点 周二下午两点——其中「周一下午三点」被横线划掉。

单波浪线

GFM 的删除线扩展允许使用一个或两个波浪线,所以 GitHub 上 ~文字~ 同样有效。但多数其他解析器不认这种写法,而 Slack 自带输入框又只认单波浪线——把它当作平台特定语法,不要指望跨平台通用。

markdown
~v2 起已废弃~

在 GitHub、GitLab、Slack 中会被划掉;在 Discord 和只支持 CommonMark 的解析器中会连同波浪线一起原样输出。

HTML 标签兜底

删除线不属于原始 Markdown 规范,也不属于 CommonMark。当解析器不认波浪线时,直接退回到 HTML 标签——所有允许内联 HTML 的 Markdown 方言都能识别。

markdown
<del>在 2.0 重构中已移除</del>
<s>仅表示视觉上划掉,没有删除语义</s>

两者都会显示为带横线的文字。<del> 表示内容确实被删除,<s> 只表示内容已不再准确。

与加粗、斜体、链接组合

删除线可以和其他行内格式自由嵌套,且嵌套顺序不影响结果。想把整个链接文字划掉时,就用这种写法。

markdown
~~**严重缺陷**~~ 已在 1.4 修复
~~[旧版迁移指南](https://example.com/v1)~~

第一行是带横线的粗体文字;第二行把整段可点击的链接文字都划掉,链接本身依然可用。

任务清单与表格

凡是支持行内格式的结构都支持删除线,包括待办清单和表格单元格——这是写变更日志和发布检查清单时最常用的场景。

markdown
- [x] ~~完成初稿~~
- [ ] 评审初稿

| 套餐 | 价格 |
| --- | --- |
| 专业版 | ~~¥99~~ ¥79 |

已完成的任务和旧价格会被划掉,其余内容保持原样。

转义字面波浪线

想让波浪线原样显示时,用反斜杠逐个转义,或者用反引号把内容变成行内代码。另外,~/projects 这类家目录路径只有单个波浪线且没有闭合,本身不会触发删除线。

markdown
\~\~这里不是删除线\~\~
`~~以代码形式显示~~`

两行都会原样显示波浪线,文字不会被划掉。

各平台对 Markdown 删除线的支持

由于删除线属于扩展语法,支持度虽高但并非全覆盖,而单波浪线正是各平台分歧最大的地方。发布前请先确认目标平台。

平台支持情况说明
GitHub / GitLab完全支持README、Issue、PR、评论和 Wiki 中 ~~文字~~ 均可用,单波浪线同样能渲染。
Discord完全支持必须使用双波浪线;单波浪线原样显示,HTML 标签一律不解析。
Slack部分支持Slack 自带输入框用单个 ~波浪线~ 表示删除线,双波浪线不是它的原生语法。
Obsidian完全支持编辑视图与阅读视图中 ~~文字~~ 都能渲染,内联 HTML 的 <del> 也有效。
Notion完全支持输入 ~~文字~~ 会在打字过程中自动转换成删除线。
Reddit完全支持Markdown 编辑器和 old.reddit.com 都支持双波浪线。
VS Code 预览完全支持内置 Markdown 预览遵循 GFM,双波浪线可正常渲染。
CommonMark / 经典 Markdown不支持完全不识别波浪线语法,需要改用 <del> 或启用 GFM 删除线插件。

如何在 Markdown 中添加删除线

  1. 输入文字

    在上方输入框中输入或粘贴需要划掉的文字。

  2. 选择写法

    面向 GitHub 等多数平台选双波浪线;发到 Slack 选单波浪线;解析器不支持 GFM 扩展时选 HTML 标签。

  3. 复制结果

    在 Markdown 标签页点击复制按钮;如果模板或邮件需要 <del> 标签,切换到 HTML 标签页复制。

  4. 核对预览

    发布前在预览标签页确认横线正好落在你想划掉的文字上。

常见问题

Markdown 中的 ~~ 是什么意思?

在一段文字两侧各加两个波浪线表示删除线:文字仍然可读,但会被一条横线划掉。它会编译成 <del> 元素,表示这段内容已被移除或被取代,而不是简单地从页面上删掉。

删除线属于标准 Markdown 语法吗?

不属于。2004 年的原始 Markdown 规范和 CommonMark 都没有定义删除线,它是 GitHub Flavored Markdown 引入的扩展,之后被广泛采用。所以 GitHub、GitLab、Discord 都能用,但在严格的 CommonMark 解析器(例如默认配置的 python-markdown)中会静默失效。

GitHub 上怎么打删除线?

用双波浪线包裹文字即可,例如 ~~过时的说明~~。README、Issue、Pull Request、评论、Release 和 Wiki 中都有效。GitHub 遵循 GFM 删除线扩展,单个波浪线同样能渲染,但双波浪线是通行写法,兼容性也更好。

一个波浪线和两个波浪线有什么区别?

GFM 扩展把一个或两个波浪线都视为删除线,因此在 GitHub 上两者效果相同。但换到别处就不一样了:Slack 只认单波浪线,Discord 只认双波浪线,多数解析器也只认双波浪线。除非专门写给 Slack,否则一律用两个波浪线。

为什么我的 Markdown 删除线不生效?

常见原因有四个:波浪线和文字之间有空格;波浪线没有成对闭合;解析器没有启用 GFM 扩展;或者这段文字位于代码块、行内代码之中,格式会被刻意忽略。另外,行首连续三个以上的波浪线会被当成代码围栏。

Discord 和 Slack 里怎么打删除线?

Discord 用双波浪线 ~~文字~~;Slack 则是主流聊天工具中的例外,用单个波浪线 ~文字~。两者都不解析 HTML,<del> 标签会原样显示。把同一段内容在两个平台之间直接复制,是聊天中删除线失效最常见的原因。

删除线可以和加粗、斜体、链接一起用吗?

可以。删除线能与其他行内格式自由嵌套,顺序也不影响结果,~~**文字**~~ 和 **~~文字~~** 效果相同。把整个链接包在波浪线里,例如 ~~[标题](https://example.com)~~,会划掉可点击的链接文字,链接本身仍然可用。

删除线能跨多行或多个段落吗?

波浪线语法只作用于行内,遇到空行就会中断,因此每个段落都要各自成对书写。想一次性划掉整块内容,就改用 HTML:把这些段落放进一对 <del> 标签中,所有允许内联 HTML 的 Markdown 方言都会正常渲染。

如何显示字面意义的波浪线而不触发删除线?

用反斜杠逐个转义,或者用反引号把内容变成行内代码来禁用所有格式。像 ~/projects 这样的路径中只有一个孤立的波浪线,同一行内没有闭合的另一半,因此不会触发删除线。

HTML 中的 <del> 和 <s> 有什么区别?

<del> 表示内容确实从文档中被删除,还可以带 cite 和 datetime 属性,更适合变更日志和修订记录;<s> 只表示内容已不再准确或不再适用,比如失效的价格。Markdown 的波浪线语法通常编译为 <del>。