# all·markdown

How to bold and italicise text in Markdown

Try it — edit the markdown and watch the preview

Result

Runs entirely in this tab. Open the full editor to work on a real document.

Two asterisks make text bold, one makes it italic, three make it both:

**bold**  *italic*  ***both***

Underscores do the same job — __bold__, _italic_ — with one important difference.

Asterisks are the safer default

Inside a word, underscores are ignored on purpose:

snake_case_name     stays literal
mid*word*emphasis   italicises "word"

That rule exists so identifiers like user_id_field survive intact. It also means underscores fail silently when you actually wanted emphasis mid-word. If you standardise on one marker, standardise on asterisks.

The usual reason it does not work

Spaces between the markers and the text:

** not bold **      renders the asterisks literally
**bold**            works

The markers have to touch the text they wrap. An unclosed pair leaves the characters visible too, which is the other common cause.

Bold is not a heading

It is tempting to bold a line instead of writing ##. The output looks similar and the meaning is not: a heading appears in the table of contents, gets an id you can link to, and tells a screen reader that a new section has started. Bolded text does none of that. Use a heading when you mean a heading.

Common questions

How do I make text bold?
Wrap it in two asterisks — **like this**. Two underscores do the same thing, but asterisks are safer because underscores are ignored in the middle of a word by most parsers.
What is the difference between asterisks and underscores?
They render identically at the start of a word. Inside a word they differ: asterisks still work, while underscores are deliberately ignored so that variable_names_like_this are not mangled into italics.
How do I make text both bold and italic?
Use three asterisks around it. You can also nest one inside the other, which is clearer when only part of a bold phrase should also be italic.
Why is my text not turning bold?
Almost always a space problem. The markers must sit flush against the text, so ** bold ** renders as literal asterisks while **bold** works. An unclosed pair leaves the markers visible too.
How do I show a literal asterisk?
Escape it with a backslash — \* — or wrap the text in a code span, where Markdown syntax is not interpreted at all.