Markdown Text Formatting: Bold, Italic, Strikethrough and More
By the MDConverter team · Updated · 2 min read
Quick answer
Wrap text in **double asterisks** for bold, *single asterisks* for italic, ***three*** for both, and ~~tildes~~ for strikethrough. Markdown has no syntax for underline, highlight, superscript or subscript; use HTML tags such as <ins>, <mark>, <sup> and <sub> where your app allows HTML, or app-specific shortcuts like Obsidian's ==highlight==.
Bold and italic
Asterisks and underscores both work. Asterisks are the safer choice because underscores inside words (snake_case_name) are deliberately ignored.
**Bold** and __also bold__
*Italic* and _also italic_
***Bold and italic*** or **_mixed markers_**Bold and also bold
Italic and also italic
Bold and italic or mixed markers
un*believ*able works with asterisks.
un_believ_able does not work with underscores.unbelievable works with asterisks. un_believ_able does not work with underscores.
*. That is why file names like my_file_name.md stay intact.Strikethrough
Strikethrough is a GitHub Flavored Markdown extension, not part of original Markdown, but nearly every modern app supports it. Wrap the text in two tildes (GitHub also accepts one).
The meeting is on ~~Tuesday~~ Wednesday.The meeting is on Tuesday Wednesday.
Underline
Markdown has no underline syntax — on the web, underlined text looks like a link. If you need it, use HTML. GitHub's documentation recommends <ins>; <u> works in many other renderers.
This is <ins>underlined</ins> text.This is underlined text.
__underline__ underlines text there, whereas everywhere else double underscores mean bold.Highlight
There is no standard highlight syntax. Two options:
==highlighted text==— supported by Obsidian, Typora, iA Writer, Joplin and many Markdown editors (shown below as unrendered, because GitHub and CommonMark do not support it).<mark>highlighted text</mark>— works wherever HTML is allowed.
==Obsidian-style highlight==
<mark>HTML highlight</mark>==Obsidian-style highlight==
HTML highlight
==…== stays as plain text — exactly what you would see on GitHub.Superscript and subscript
Use <sup> and <sub> — both are on GitHub's list of supported formatting. Some extended renderers (Pandoc, markdown-it plugins) also accept ^superscript^ and ~subscript~, but that syntax is not portable.
E = mc<sup>2</sup> and H<sub>2</sub>OE = mc2 and H2O
Combining styles
Styles nest as long as each one is closed in the reverse order it was opened.
**Bold with *italic* inside** and ~~**bold strikethrough**~~
`code` inside text is never formatted: `**not bold**`Bold with italic inside and bold strikethrough
code inside text is never formatted: **not bold**
Why you see asterisks when you paste AI text
ChatGPT, Claude and Gemini write their answers with exactly this syntax. When you copy an answer and paste it into Word, Gmail or a form, the ** and * markers show up as characters. Convert the text first: ChatGPT to Word or Markdown to Google Docs turn them into real bold and italics, and Remove asterisks from ChatGPT text strips them when you only need plain text.
Text style support by app
Bold and italic work everywhere. The rest varies:
| App | Supported | Notes |
|---|---|---|
| GitHub | Yes | **bold**, *italic*, ~~strike~~, <ins>, <sup>, <sub>. No ==highlight==. |
| Obsidian | Yes | All of the above plus ==highlight==. |
| Discord | Yes | __underline__, ~~strike~~, ||spoiler||. No HTML. |
| Slack | Partly | *bold* (single asterisks), _italic_, ~strike~. No underline. |
| Partly | *bold*, _italic_, ~strike~, ```monospace```. | |
| Yes | Bold, italic, ~~strike~~ and ^superscript. | |
| Notion | Partly | Bold, italic, strike and inline code as you type; no underline shortcut via Markdown. |
Common mistakes and how to fix them
| Problem | Fix |
|---|---|
** bold ** is not bold | Remove the spaces just inside the markers: **bold**. |
| Part of a file name turned italic | Use asterisks for emphasis and wrap file names in backticks: my_file_name.md. |
| Literal asterisks wanted | Escape them: \*not italic\*. |
| Bold works in Markdown but not in Slack | Slack uses single asterisks. Convert with Markdown to Slack. |
Tools for this
Frequently Asked Questions About Bold, italic & other text styles
Comprehensive answers to common technical, formatting, security, and compatibility questions.
Related reading
- How to Color, Center and Align Text in Markdown — Color and centered text in Markdown: the HTML, GitHub and app-specific options that actually work.
- Markdown Escape Characters: How to Show *, _, # and | Literally — Show *, _, #, | and other symbols literally — with a free escape and unescape tool.
- Markdown Headings: Syntax, Levels and Linking to a Heading — Heading levels, the setext alternative, anchor links and the mistakes that break headings.