Markdown Strikethrough

Updated

Cross out text in Markdown by wrapping it in double tildes: ~~struck through~~. Strikethrough is a GitHub Flavored Markdown extension supported by most modern renderers.

Strikethrough syntax

Double tildes are the portable form. The GFM spec also accepts single tildes, but many other parsers only recognize the pair, so always use two.

~~This price is outdated.~~ New price: $0. MDTool is free.

Compatibility

Strikethrough is not part of core Markdown or CommonMark. It works on GitHub, GitLab, Discord, Obsidian, and in MDTool converters (PDF, HTML as <del>, and Word), but strict CommonMark parsers render the tildes literally.

Where strikethrough works

Nearly every modern editor and chat app supports crossing out text, but a few use a single tilde or a toolbar shortcut instead of the double-tilde syntax.

PlatformSyntaxNote
GitHub~~text~~ (or ~text~)Renders as <del>
GitLab~~text~~-
Obsidian~~text~~Also has a "Toggle strikethrough" command
VS Code preview~~text~~Double tildes only
Notion~text~ while typingOr Cmd/Ctrl+Shift+S
Reddit, Discord~~text~~-
Slack~text~Uses single tildes

HTML alternatives: <del> and <s>

Where inline HTML is allowed (including GitHub), you can write the tags directly. <del> marks content that was removed, such as an edit in a changelog, and is what ~~ produces. <s> marks text that is no longer accurate or relevant, like an old price. Both look the same; the difference is meaning for screen readers and search engines. Pair <del> with <ins> to show a replacement.

Deadline: <del>Friday</del> <ins>Monday</ins>
Price: <s>$49</s> Free

Strikethrough in tables, links and lists

Tildes work inside table cells like any other inline formatting. To cross out a link, put the tildes outside the brackets so the whole link is struck; put them inside to strike only part of the link text. Struck-through list items are a common way to show finished or cancelled tasks.

| Plan | Price |
|------|-------|
| Pro  | ~~$49~~ Free |

~~[Old documentation](https://example.com/v1)~~
[~~Old~~ New documentation](https://example.com/v2)

- ~~Cancelled: print handouts~~

Combining with bold, italic and code

Strikethrough nests with other emphasis. Put the tildes inside the asterisks or the other way round, and both render. Inside inline code, tildes are shown literally, so wrap the code span instead.

**~~bold and struck~~**
*~~italic and struck~~*
~~`deprecatedFunction()`~~

Frequently Asked Questions

What HTML does Markdown strikethrough produce?

GFM renders ~~text~~ as a <del> element, which is also what MDTool’s Markdown to HTML converter outputs.

Is there a keyboard shortcut for strikethrough?

Not in Markdown itself. VS Code has none built in; the Markdown All in One extension toggles strikethrough with Alt+S on Windows. Obsidian has a "Toggle strikethrough" command you can bind under Settings → Hotkeys. Notion uses Cmd/Ctrl+Shift+S.

Should I use one tilde or two?

Two. GitHub accepts ~one~ as well, but VS Code’s preview and many other parsers only recognize ~~two~~, and three or more tildes never strike text through.

Why are my tildes showing instead of a line through the text?

Either the renderer does not support the GFM strikethrough extension, there is a space just inside the tildes (~~ text ~~), or the text spans a blank line, which ends the formatting. Keep the tildes tight against the words and within one paragraph.

Try it live

Paste this syntax into the free markdown to html converter and see the rendered output instantly. No signup, and everything runs in your browser.

Open Markdown to HTML Converter →

More Markdown syntax: