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~~ Support | Notes |
|---|---|---|
| GitHub (GFM) | Yes | Full support in issues, PRs, comments, and README files |
| Obsidian | Yes | Works in notes, supports preview and reading mode |
| VS Code Preview | Yes | Built-in markdown preview renders strikethrough |
| Yes | Works in both old Reddit (markdown) and new Reddit | |
| Discord | Yes | Uses the same ~~text~~ syntax |
| Slack | No | Slack uses ~text~ (single tilde) instead |
| Standard CommonMark | No | Not in the base spec; requires GFM extension |
| Jupyter Notebooks | Yes | Supported 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.
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.