WhatsApp formatting
WhatsApp is not Markdown, but it borrowed the shape of it — and then halved the number of characters. One asterisk is bold rather than italic, one tilde strikes through rather than two, and links, images and headings do not exist. Everything it does support is below.
This preview is standard Markdown — read it as the contrast, not the target
Result
Runs entirely in this tab. Open the full editor to work on a real document.
The preview renders standard Markdown, so the lines that come out wrong above are precisely the ones WhatsApp reads differently.
Every format
| Format | Standard Markdown | |
|---|---|---|
| Bold | *bold* | **bold** |
| Italic | _italic_ | *italic* or _italic_ |
| Strikethrough | ~struck~ | ~~struck~~ |
| Monospace | ```code``` | `code` inline |
| Inline code | `code` | `code` |
| Bulleted list | - item | - item |
| Numbered list | 1. item | 1. item |
| Quote | > quoted | > quoted |
| Link | none — URLs autolink | [text](url) |
| Heading | none | # Heading |
| Table | none | pipes and dashes |
| Underline | none | none either |
One asterisk, and why it matters
In Markdown, *text* is italic and **text** is
bold. WhatsApp uses one asterisk for bold and has no second level, so a
Markdown paragraph pasted into a chat arrives with visible asterisks
around bold-looking text — the outer pair renders, the inner pair does
not.
The same applies to strikethrough: one tilde in WhatsApp, two everywhere else. Underscores are the only mark that means the same thing in both.
Lists and quotes
Both arrived in 2023, and both work the way Markdown does — a hyphen or
asterisk and a space for bullets, 1. and a space for numbers,
> and a space for a quote. Nesting is not supported: an
indented item is just an item with spaces in front of it.
What WhatsApp does not have
- Links with text.
[text](url)renders literally. Paste the bare URL — WhatsApp links it and fetches a preview. - Images by syntax. Attach the file instead.
- Headings. A leading
#is a#. Bold is the substitute. - Tables. A monospace block with hand-aligned columns is as close as it gets, and it wraps badly on a narrow screen.
- Underline, colour and size. None of them, with no HTML fallback.
- Escaping. No backslash escape. To show a literal asterisk, wrap the passage in a monospace block.
Sending a Markdown document
Send it as a file rather than as a message. A .md attachment
arrives intact and opens in any text editor; if the recipient may not have
one, export it to PDF first — that renders
identically on every phone.
For a short passage that has to go in the chat itself, open it in the editor and retype the emphasis: two asterisks become one, two tildes become one, and headings become bold lines.
Common questions
- Does WhatsApp use Markdown?
- No, though it borrowed the look. WhatsApp has its own short list of formatting characters — one asterisk for bold, underscores for italic, one tilde for strikethrough — and no support for the rest of Markdown. Links, images and headings all render as plain characters.
- How do I make text bold in WhatsApp?
- Put one asterisk on each side: *bold*. This is the difference that catches people, because one asterisk is italic in Markdown and on most other platforms. Two asterisks show as literal asterisks around bold text.
- How do I make a bulleted list?
- Start the line with a hyphen or an asterisk followed by a space. Numbered lists work with 1. and a space. Both were added in 2023, so guides saying WhatsApp has no lists are out of date.
- Can I underline text?
- No. WhatsApp has no underline and no HTML, so there is no workaround either. Bold is the only way to make a phrase stand out.
- How do I stop something formatting?
- Put it in a monospace block with three backticks, where every character is literal. There is no backslash escape — a backslash shows up as a backslash.
- How do I send a Markdown document over WhatsApp?
- As a file rather than as a message. Attach the .md, or export it to PDF first if the recipient may not have anything that opens one. Pasting a long Markdown document into a chat produces a wall of unrendered syntax characters.