Markdown Strikethrough

How to cross out text in Markdown using ~~ syntax

Basic Syntax

Wrap text in double tildes ~~ to cross it out. The tildes must touch the text on both sides — no spaces between the markers and the content.

This text is crossed out

~~This text is crossed out~~

The meeting is at 3 PM 4 PM

The meeting is at ~~3 PM~~ 4 PM

Strikethrough is commonly used to show corrections, removed content, or outdated information while keeping the original text visible for context.

Strikethrough with Other Formatting

You can combine strikethrough with bold, italic, or inline code. Place the bold or italic markers on the outside and the tildes on the inside for the best cross-platform support.

Bold strikethrough

Bold and crossed out

**~~Bold and crossed out~~**

Italic strikethrough

Italic and crossed out

*~~Italic and crossed out~~*

Bold italic strikethrough

Bold, italic, and crossed out

***~~Bold, italic, and crossed out~~***

Strikethrough in Lists

Strikethrough is especially useful in task lists to visually mark completed or cancelled items. Combine it with GFM task list checkboxes for a clear done/not-done pattern.

  • Buy groceries
  • Send invoice
  • Write documentation
- ~~Buy groceries~~
- ~~Send invoice~~
- Write documentation
  • ☑ Set up CI pipeline
  • ☑ Write unit tests
  • ☐ Deploy to production
- [x] ~~Set up CI pipeline~~
- [x] ~~Write unit tests~~
- [ ] Deploy to production

Strikethrough in Tables

Strikethrough works inside Markdown pipe tables. This is useful for showing deprecated features, removed items, or price changes.

FeatureStatus
Dark modeAvailable
Legacy exportRemoved in v3
PDF exportNew in v3
| Feature          | Status         |
|------------------|----------------|
| Dark mode        | Available      |
| ~~Legacy export~~| ~~Removed in v3~~ |
| PDF export       | New in v3      |

GFM Extension

Strikethrough is not part of the original Markdown specification by John Gruber, and it is not included in the CommonMark standard either. It was introduced as an extension in GitHub Flavored Markdown (GFM).

The GFM spec defines strikethrough as text wrapped in double tildes (~~). Some processors also support single tildes (~text~), but this is non-standard and not widely portable. Stick with double tildes for reliable results.

Because strikethrough is an extension, it requires the Markdown processor to explicitly opt in. Most modern editors and platforms support it, but if you are using a strict CommonMark parser or an older tool, ~~text~~ may render as literal tildes instead of crossed-out text.

HTML Alternative

When your Markdown processor does not support ~~, you can fall back to raw HTML. Two tags produce strikethrough text:

Deleted with del tag
Struck with s tag

<del>Deleted with del tag</del>
<s>Struck with s tag</s>

When to use which:

  • <del> — semantic meaning: this content was deleted or removed. Best for document revisions and changelogs.
  • <s> — semantic meaning: this content is no longer accurate or no longer relevant. Best for outdated prices, superseded information.

Both render identically as crossed-out text in browsers, but screen readers and search engines can distinguish between them.

Platform Support

Since strikethrough is a GFM extension, support varies across platforms. Here is how the three strikethrough methods work on popular Markdown tools:

Platform~~text~~<del><s>
GitHubYesYesYes
GitLabYesYesYes
VS Code PreviewYesYesYes
ObsidianYesYesYes
MDViewerYesYesYes
RedditYesNoNo
Stack OverflowNoYesYes
CommonMark (strict)NoVariesVaries

If you need cross-platform reliability, use ~~text~~ for GFM-compatible environments and <del> as a fallback for strict parsers that allow inline HTML.

Common Mistakes

Spaces inside the tildes

Adding a space between the tildes and the text breaks strikethrough formatting. The markers must touch the text on both sides.

MarkdownResult
~~works~~works
~~ broken ~~~~ broken ~~
~~works~~
~~ broken ~~

Using a single tilde

Some editors support ~text~ with a single tilde, but this is non-standard. Most Markdown processors require double tildes. Stick with ~~ for consistent results.

~~reliable~~       <-- double tildes, works everywhere
~unreliable~       <-- single tilde, may not render

Forgetting it's GFM-only

If your strikethrough renders as literal ~~tildes~~, your Markdown processor likely does not support the GFM strikethrough extension. Switch to <del>text</del> or check your tool's settings for a GFM or extensions toggle.

When to Use Strikethrough

Strikethrough is most effective when you want to show what changed rather than just the final result. Common use cases include:

  • Changelogs — show removed features or deprecated APIs alongside what replaced them
  • Corrections — cross out the wrong value while keeping it visible for context: Tuesday Wednesday
  • Pricing pages — show original prices next to discounted ones: $49 $29
  • Deprecated items — mark deprecated functions or config options in documentation
  • Task lists — visually mark completed or cancelled tasks
  • Draft revisions — show edits in collaborative documents so reviewers see what was cut

Avoid overusing strikethrough. If the removed text no longer adds context, delete it entirely instead of crossing it out.

Preview Strikethrough in MDViewer

MDViewer renders full GitHub Flavored Markdown, including ~~strikethrough~~, tables, task lists, and syntax highlighting. Double-click any .md file in Finder and see it rendered instantly. Lite is free; Pro adds editing, Git history, and PDF export.

Download MDViewer

Requires macOS 13.0 or later. Intel and Apple Silicon.

FAQ

How do I strikethrough text in Markdown?

Wrap the text in double tildes: ~~your text~~. This renders as your text. Strikethrough is a GitHub Flavored Markdown extension and is not part of the original Markdown spec, but most modern Markdown apps support it.

Does strikethrough work in all Markdown apps?

No. Strikethrough with ~~ is a GFM extension, not part of standard Markdown or CommonMark. It works on GitHub, GitLab, VS Code, Obsidian, MDViewer, and most modern editors. For apps that do not support it, use the HTML <del> or <s> tag instead.

Can I combine strikethrough with bold or italic?

Yes. Wrap the strikethrough text in bold or italic markers: **~~bold strikethrough~~** or *~~italic strikethrough~~*. Place the bold/italic markers on the outside and the tildes on the inside for the most reliable results across platforms.

What's the HTML alternative to ~~?

Use <del>text</del> for deleted or removed content, or <s>text</s> for content that is no longer accurate. Both render as strikethrough text. The <del> tag is preferred when indicating revisions, while <s> is better for outdated information.

Is strikethrough part of standard Markdown?

No. Strikethrough is not part of John Gruber's original Markdown specification or the CommonMark standard. It was introduced as an extension in GitHub Flavored Markdown (GFM). Despite that, it has been widely adopted and works in most modern Markdown processors and editors.