MDConverter
Universal In-Browser Converter
100% Client-Side Private

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.

Markdown
**Bold** and __also bold__

*Italic* and _also italic_

***Bold and italic*** or **_mixed markers_**
Result

Bold and also bold

Italic and also italic

Bold and italic or mixed markers

Emphasis inside a word
Markdown
un*believ*able works with asterisks.
un_believ_able does not work with underscores.
Result

unbelievable works with asterisks. un_believ_able does not work with underscores.

Intra-word emphasis only works with *. 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).

Markdown
The meeting is on ~~Tuesday~~ Wednesday.
Result

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.

Markdown
This is <ins>underlined</ins> text.
Result

This is underlined text.

Discord is the exception that has its own syntax: __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.
Markdown
==Obsidian-style highlight==

<mark>HTML highlight</mark>
Result

==Obsidian-style highlight==

HTML highlight

Our renderer follows GitHub, so ==…== 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.

Markdown
E = mc<sup>2</sup> and H<sub>2</sub>O
Result

E = mc2 and H2O

For full formulas, use LaTeX math instead — see MarkdownPreview.net’s LaTeX math in Markdown guide.

Combining styles

Styles nest as long as each one is closed in the reverse order it was opened.

Markdown
**Bold with *italic* inside** and ~~**bold strikethrough**~~

`code` inside text is never formatted: `**not bold**`
Result

Bold with italic inside and bold strikethrough

code inside text is never formatted: **not bold**

Anything inside backticks is shown literally, so it is the easiest way to show Markdown symbols without them being interpreted.

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:

AppSupportedNotes
GitHubYes**bold**, *italic*, ~~strike~~, <ins>, <sup>, <sub>. No ==highlight==.
ObsidianYesAll of the above plus ==highlight==.
DiscordYes__underline__, ~~strike~~, ||spoiler||. No HTML.
SlackPartly*bold* (single asterisks), _italic_, ~strike~. No underline.
WhatsAppPartly*bold*, _italic_, ~strike~, ```monospace```.
RedditYesBold, italic, ~~strike~~ and ^superscript.
NotionPartlyBold, italic, strike and inline code as you type; no underline shortcut via Markdown.

Common mistakes and how to fix them

ProblemFix
** bold ** is not boldRemove the spaces just inside the markers: **bold**.
Part of a file name turned italicUse asterisks for emphasis and wrap file names in backticks: my_file_name.md.
Literal asterisks wantedEscape them: \*not italic\*.
Bold works in Markdown but not in SlackSlack uses single asterisks. Convert with Markdown to Slack.

Tools for this

Frequently Asked Questions

Frequently Asked Questions About Bold, italic & other text styles

Comprehensive answers to common technical, formatting, security, and compatibility questions.

Asterisks. Both are valid, but underscores do not work inside words and are easy to confuse with snake_case names. Whichever you choose, use it consistently — linters such as markdownlint flag mixed styles.

Sources

← All Markdown lessons · Markdown cheat sheet