Skip to main content

Markdown Bold Syntax

The complete guide to bold text in Markdown. Covers the core **text** syntax, bold + italic, asterisks vs underscores, platform quirks, HTML fallbacks, and the mistakes that break it.

Basic Syntax

Wrap the text in two asterisks on each side. The asterisks must touch the first and last character - no spaces between the marker and the word.

Bold text
**This text is bold.**
Preview

This text is bold.

Bold + Italic

Use three asterisks or three underscores around the text. You can also nest one style inside the other if you need to mix markers.

Triple asterisks
***This text is bold and italic.***
Preview

This text is bold and italic.

Nested bold + italic
**_bold italic_**
Preview

bold italic

Asterisks vs Underscores

Markdown accepts both **text** and __text__. They produce the same visual result. Asterisks are the safer default because underscores conflict with underscores in file names, identifiers, and URLs.

Underscore bold
__This text is also bold.__
Preview

This text is also bold.

Word-boundary warning: __my_file_name__ can fail in some parsers. Prefer **my_file_name** when the text contains underscores.

Platform Variations

Most platforms use **text**. Slack is the main exception: its mrkdwn format uses a single asterisk for bold and an underscore for italic.

Discord / Reddit / GitHub / Obsidian
**bold text**
How it looks in Discord / Reddit / GitHub / Obsidian

bold text

Double asterisks render bold in standard Markdown and GFM-based platforms.

SlackPlatform-specific
*bold text*
How it looks in Slack
bold text

Slack mrkdwn uses a single asterisk for bold and an underscore for italic.

HTML Fallback

If a renderer does not support Markdown emphasis, use inline HTML. Choose <strong> for semantic importance or <b> for purely presentational bold.

<strong> tag
<strong>This is semantic bold.</strong>
Preview

This is semantic bold.

Semantic strong emphasis. Prefer this over <b>.

<b> tag
<b>This is presentational bold.</b>
Preview

This is presentational bold.

Presentational bold. Use only when <strong> semantics are wrong.

Reddit, Slack, and Discord strip or ignore inline HTML, so these fallbacks only help in document-based renderers like GitHub, GitLab, Obsidian, VS Code, and static-site generators.

Common Mistakes

The most frequent ways bold formatting fails. Each row shows the broken version and the corrected one side by side.

Broken

** bold text **

Fixed

**bold text**
Spaces between the asterisks and the text break the formatting. Delimiters must touch the word.

Broken

*bold text*

Fixed

**bold text**
A single asterisk creates italic, not bold. Use two asterisks for bold.

Broken

__my_file_name__

Fixed

**my_file_name**
Underscores inside words can confuse parsers. Use asterisks when the text contains underscores.

Broken

**bold text*

Fixed

**bold text**
Mismatched delimiters. The opening and closing markers must use the same character and count.

Broken

**text**more text**

Fixed

**text** and **more text**
Bold cannot be nested inside bold. Close one span before starting the next.

Quick Reference

SyntaxResultNotes
**text**BoldMost common syntax
__text__BoldUnderscore variant
***text***Bold + italicThree delimiters on each side
**_text_**Bold + italicNested style, also valid
<strong>text</strong>BoldHTML semantic fallback

Platform Support

Bold is one of the most widely supported Markdown features. The main variable is Slack, which flips the asterisk meaning.

PlatformSupported?Notes
GitHubYes**text** or __text__ both render bold.
GitLabYesSame as GitHub Flavored Markdown.
Reddit (new)Yes**text** works in new Reddit and official apps.
Reddit (old)Yes**text** works in old Reddit's snudown parser.
DiscordYes**text** for bold, *text* for italic.
SlackYes*text* for bold in mrkdwn. **text** renders literally.
NotionYesPasting **text** converts to bold formatting.
ObsidianYesRenders double-asterisk bold in Live Preview and Reading view.
VS Code previewYesBuilt-in preview supports standard bold syntax.
CommonMarkYesStrong emphasis is part of the CommonMark spec.
Docusaurus / VitePress / AstroYesGFM or remark plugins apply bold formatting.

Frequently Asked Questions

How do you bold text in Markdown?

Wrap the text in two asterisks: **bold text**. You can also use double underscores: __bold text__. Both render as bold in most Markdown parsers.

Is bold text part of standard Markdown?

Yes. Strong emphasis (bold) is part of the CommonMark specification. It is implemented with double asterisks or double underscores.

What is the difference between asterisks and underscores for bold?

Functionally, **text** and __text__ produce the same bold output. The practical difference is that underscores can conflict with underscores inside words or identifiers, such as my_file_name. Asterisks avoid this problem.

How do you make text bold and italic in Markdown?

Use three asterisks or three underscores around the text: ***bold italic*** or ___bold italic___. You can also combine the two styles: **_bold italic_** or __*bold italic*__.

Why does my bold text not work in Slack?

Slack's mrkdwn format uses a single asterisk for bold (*text*) and an underscore for italic (_text_). This is the opposite of standard Markdown. If you paste **text** into Slack, it renders as literal asterisks unless the composer converts it.

Can I use HTML to bold text in Markdown?

Yes. Use <strong>text</strong> for semantic strong emphasis or <b>text</b> for presentational bold. These work in HTML-enabled renderers such as GitHub, GitLab, Obsidian, VS Code, and most static-site generators. They do not work in Slack or Discord, which strip inline HTML.

Why does my bold text show asterisks instead of bold?

The most common causes are spaces between the asterisks and the text, mismatched delimiters (one side has two asterisks, the other has one), or using single asterisks instead of double. Delimiters must touch the text and match exactly.

Can I bold text inside a link or code block?

You can bold the link text: **[bold link](https://example.com)**. You cannot bold text inside an inline code span or fenced code block because Markdown formatting is disabled inside code. Inside a code block, asterisks are rendered literally.

Related Markdown Guides

Bold is one piece of Markdown text formatting. For the rest of the syntax surface area: