Markdown Strikethrough: Cross Out Text Guide

May 16, 2026 · 6 min read

Markdown Strikethrough: How to Cross Out Text

Markdown strikethrough uses two tilde characters (~~) wrapped around text to render it with a horizontal line through the middle. This formatting is part of GitHub Flavored Markdown (GFM) and works on GitHub, Obsidian, VS Code, Reddit, and most modern editors. Here you will learn the syntax, platform support, and common issues with strikethrough in markdown.

Strikethrough Syntax in Markdown

The strikethrough syntax wraps your text in double tildes. There is no space between the tildes and the text.

~~This text is crossed out.~~

This renders as: This text is crossed out.

The double-tilde syntax is defined in the GitHub Flavored Markdown spec (GFM), which extends the CommonMark standard. CommonMark 0.31 itself does not include strikethrough, so support depends on your parser and platform.

How Do You Use Markdown Strikethrough?

Strikethrough text is useful in several situations. You can show corrections, mark completed tasks, indicate deprecated information, or highlight changes between document versions. In our experience, strikethrough appears most often in changelogs, meeting notes, and collaborative documents.

Showing a correction:

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

Marking something as done (informal):

~~Buy groceries~~ Done!

Indicating deprecated code or features:

~~Use `api/v1/users` endpoint~~ Deprecated. Use `api/v2/users` instead.

You can combine strikethrough with other formatting. Bold, italic, links, and inline code all work inside the tildes.

~~**Bold and crossed out**~~
~~*Italic and crossed out*~~
~~[Link text](https://example.com) is also struck through~~
~~`inline code` inside strikethrough~~

Renders as:
Bold and crossed out
Italic and crossed out
Link text is also struck through
inline code inside strikethrough

One caveat: combining strikethrough with bold and italic at the same time (~~***text***~~) works on GitHub and Obsidian but can break in some email markdown renderers. Test your output if you are targeting multiple platforms.

Strikethrough Markdown Support Across Platforms

Not every markdown environment supports the ~~ syntax. Here is what we found when testing across 8 platforms in April 2026:

Platform~~text~~ SupportNotes
GitHub (GFM)YesFull support in issues, PRs, comments, and README files
ObsidianYesWorks in notes, supports preview and reading mode
VS Code PreviewYesBuilt-in markdown preview renders strikethrough
RedditYesWorks in both old Reddit (markdown) and new Reddit
DiscordYesUses the same ~~text~~ syntax
SlackNoSlack uses ~text~ (single tilde) instead
Standard CommonMarkNoNot in the base spec; requires GFM extension
Jupyter NotebooksYesSupported in markdown cells

If your target platform does not support ~~, you can fall back to HTML.

HTML Fallback for Strikethrough

When the tilde syntax is not available, use the HTML <del> or <s> tag directly in your markdown. Both tags are allowed in most markdown parsers that permit inline HTML.

<del>This text is deleted.</del>
<s>This text is also struck through.</s>

The <del> tag is semantically correct for content that has been removed or is no longer accurate. Screen readers announce <del> as "deletion start" and "deletion end," which improves accessibility. The <s> tag indicates text that is no longer relevant but was not an error. In practice, both render identically in browsers.

We recommend using <del> over <s> when the struck-through text represents a correction or removal. Use <s> for text that is outdated but not wrong, like old pricing.

Single Tilde vs Double Tilde

A common source of confusion: some platforms use a single tilde (~text~) for strikethrough, while the GFM standard uses double tildes (~~text~~).

Slack uses single tildes: ~crossed out~ renders as strikethrough in Slack messages. Double tildes do not work in Slack.

Pandoc supports both single and double tildes when the strikeout extension is enabled.

GitHub, Obsidian, Discord, Reddit all require double tildes. Single tildes render as plain text with tildes visible.

If you write markdown for multiple platforms, always use double tildes (~~) and convert to single tildes only for Slack. Check our Slack markdown formatting guide for the full list of Slack-specific syntax differences.

Common Mistakes with Strikethrough Markdown

Mistake 1: Adding spaces inside the tildes.

~~ This will not render as strikethrough ~~
~~This will render correctly~~

The GFM spec requires that the opening ~~ is not followed by a space and the closing ~~ is not preceded by a space. Some lenient parsers still render it, but strict parsers ignore it.

Mistake 2: Using single tildes on GitHub.

~This does not work on GitHub~
~~This works on GitHub~~

Mistake 3: Crossing out a block element.

Strikethrough only works on inline text. You cannot strike through an entire heading, list, or code block by wrapping it in tildes. For those cases, use <del> tags around the HTML output or apply strikethrough to each text element individually.

Try Strikethrough in Our Editor

Paste any of these examples into the editor below. The live preview shows your strikethrough text rendered in real time.

Strikethrough Examples

This text is crossed out.
The meeting is at 3 PM 4 PM.
Bold and struck through
Italic and struck through

24 words151 characters5 lines
Markdown

Frequently Asked Questions

Wrapping Up

Markdown strikethrough with ~~double tildes~~ is the standard way to cross out text on GitHub, Obsidian, Reddit, Discord, and most modern editors. For platforms that do not support it, the HTML <del> tag gives you the same result. Check your target platform before combining strikethrough text with other formatting to avoid rendering surprises. Practice with our online markdown editor or reference the full markdown cheat sheet for all syntax options.

Written by the Markdown Editor Online team. Last updated May 2026.