MDUtil

Strikethrough in Markdown

Wrap text in two tildes to cross it out: ~~deleted~~. Strikethrough comes from GitHub Flavored Markdown, so this guide also shows the HTML to use where only CommonMark is supported.

Quick answer

How do you strikethrough text in Markdown?

Put two tildes on each side of the text: ~~struck text~~. It becomes a <del> element in HTML. Strikethrough comes from GitHub Flavored Markdown and works on GitHub, GitLab, Discord, Reddit, Obsidian and most editors; renderers that follow only CommonMark need the <del> tag instead.

Markdown
~~This text is struck through~~

Result

This text is struck through

Strikethrough syntax and examples

Two tildes are the form to use. The examples cover the variations and the places where strikethrough is handy, such as prices and finished tasks.

Two tildes

The standard form from GitHub Flavored Markdown. The tildes must touch the text, like the asterisks of bold.

Markdown
The meeting moved from ~~Monday~~ to Tuesday.

Result

The meeting moved from Monday to Tuesday.

One tilde

GitHub and many other renderers also accept one tilde on each side. Discord does not, so two tildes are the safer choice.

Markdown
~One tilde on each side~

Result

One tilde on each side

HTML tags

Where tildes are not supported, use <del> for removed text or <s> for text that is no longer accurate. Both are shown struck through.

Markdown
<del>Removed in version 2</del>

<s>Free shipping on all orders</s>

Result

Removed in version 2

Free shipping on all orders

With bold, italic and links

Strikethrough can wrap other formatting and can sit inside it.

Markdown
~~**Critical bug**~~ fixed in 1.4

**Price: ~~€99~~ €79**

~~[Old guide](https://example.com/v1)~~

Result

Critical bug fixed in 1.4

Price: €99 €79

Old guide

In task lists and tables

Crossing out finished items and old prices are common uses.

Markdown
- [x] ~~Write the draft~~
- [ ] Review the draft

| Plan | Price |
| --- | --- |
| Pro | ~~€99~~ €79 |

Result

  • Write the draft
  • Review the draft
PlanPrice
Pro€99 €79

Showing tildes

A backslash before each tilde shows it as typed, and so do backticks.

Markdown
\~\~not struck through\~\~

`~~shown as code~~`

Result

~~not struck through~~

~~shown as code~~

Strikethrough in popular apps

Every app that follows GitHub Flavored Markdown supports two tildes. Chat apps differ in the number of tildes.

AppSupportNotes
GitHub / GitLabSupported~~text~~ works in files, issues, pull requests and comments. GitHub also accepts ~text~.
DiscordSupported~~text~~ works. One tilde is shown as typed.
SlackDiffersSlack messages use one tilde: ~text~.
ObsidianSupported~~text~~ works in editing and reading view.
NotionSupportedTyping ~text~ strikes the text through as you type.
CommonMark onlyNot supportedNo strikethrough syntax. Write <del>text</del> instead.

Questions and answers

What does ~~ mean in Markdown?

Two tildes on each side of text cross it out: ~~text~~ shows the text with a line through it. In HTML it becomes <del>, the element for deleted text.

Is strikethrough part of standard Markdown?

The original Markdown and CommonMark have no strikethrough. It comes from GitHub Flavored Markdown, which most apps now follow; elsewhere, write <del>text</del>.

Why is my strikethrough not working?

Check that the tildes touch the text (~~ text ~~ fails), that both pairs are there, and that the app supports GitHub Flavored Markdown. Discord needs two tildes, and Slack needs one.

How do I strikethrough text on GitHub?

Wrap it in two tildes: ~~text~~. It works in READMEs, issues, pull requests, comments and wikis.

How do I strikethrough text in Discord and Slack?

Discord uses two tildes, ~~text~~. Slack uses one, ~text~.

Can strikethrough span several lines?

Within one paragraph, yes: the opening and closing tildes can be on different lines. It cannot cross a blank line, so each paragraph or list item needs its own pair.

What is the difference between <del> and <s>?

<del> marks text removed from a document, often next to an <ins> with what replaced it. <s> marks text that is no longer accurate, such as an old price. Both look the same.

How do I show tildes without strikethrough?

Put a backslash before each tilde, as in \~\~text\~\~, or put the text in backticks.