Markdown on Windows and Mac
Strikethrough in Markdown ~~two tildes~~
Wrap text in double tildes: ~~like this~~. It’s an extension, not core Markdown, so support varies by app.
Updated · strikethroughtext.online
The syntax
~~This text is struck through.~~
The tildes must touch the text on the inside. ~~ text ~~ with inner spaces won’t render in most parsers. Strikethrough can span several words in a paragraph, but not across a blank line.
Where it comes from
John Gruber’s original Markdown from 2004 had no strikethrough, and neither does the core CommonMark specification. Strikethrough was added by GitHub Flavored Markdown (GFM) as an extension, and it caught on because GitHub did. The GFM spec allows one or two tildes; most other tools copied the two-tilde version.
Support by tool
| Tool | Syntax |
|---|---|
| GitHub, GitLab, Bitbucket | ~~text~~ |
| Discord, Reddit | ~~text~~ |
| Obsidian | ~~text~~ |
| Notion | ~text~ while typing |
| Slack, WhatsApp | ~text~ (their own markup) |
| Telegram desktop | ~~text~~ |
| Static site generators (Astro, Hugo, Jekyll) | ~~text~~ with GFM enabled, usually the default |
| VS Code Markdown preview | ~~text~~ |
| Jira Cloud | ~~text~~ in the editor |
Other markup that isn’t Markdown
Some places use their own formatting codes. The tildes do nothing there:
| Where | Syntax |
|---|---|
| Steam (reviews, guides, profile) | [strike]text[/strike] |
| BBCode forums | [s]text[/s], sometimes [strike]text[/strike] |
| Minecraft: Java Edition | §m before the text (or &m on servers with chat colour plugins) |
| HTML email and web pages | <s>text</s> or <del>text</del> |
Where none of these work, the Unicode version from the tool above will still show a line, because it’s part of the characters rather than formatting.
When it doesn’t work
Strict parsers. Some tools use CommonMark without extensions. Inline HTML is the fallback: <del>removed</del> or <s>outdated</s>. Most Markdown renderers pass inline HTML through, unless they sanitize it.
Literal tildes. To show tildes without striking, escape the first one: \~~not struck~~. In code spans and code blocks, tildes are always literal.
Plain-text destinations. If the Markdown is going to be read as raw text, for example in a commit message or a terminal, the tildes stay visible. The Unicode version in the tool above shows a line even in plain text, but avoid it in source files: it breaks search and diffs.
Good practice in docs
In changelogs and READMEs, strikethrough is useful for deprecated options and scrapped roadmap items. Pair it with words: “ removed in v3, use --legacy--compat”. The line shows the change at a glance, and the words explain it for screen readers and for anyone reading the raw file.
Copy-paste version
For the places where Markdown formatting won't follow your text, like file names, chat apps or a social bio.
- strikethrough
- short strike
- wavy strike
- slash
- long slash
- double slash
- strike + underline
- strike + overline
- underline
- double underline
- overline
- dotted
- wave
- x below
- redacted
- double tilde
- HTML
Questions people ask
How do you strikethrough in Markdown?
Wrap the text in two tildes on each side: ~~like this~~. This is part of GitHub Flavored Markdown and is supported by GitHub, GitLab, Discord, Reddit, Obsidian and most modern Markdown tools.
Why is my Markdown strikethrough not rendering?
Strikethrough is not part of the original Markdown or core CommonMark. If your tool uses a strict CommonMark parser without extensions, ~~text~~ stays as typed. Use inline HTML, <del>text</del>, if the tool allows it.
Is it one tilde or two?
Two is the safe choice. GitHub Flavored Markdown accepts one or two, but many other tools only accept two. Slack, WhatsApp and Notion are the exceptions: their own syntax uses one.