Markdown Support
Better Messages renders standard Markdown syntax in chat messages — users can type **bold** or *italic* and the formatting appears automatically when the message sends. This works in private conversations, group chats, and chat rooms across the free and WebSocket versions, with no setup required.
What it adds#
- Markdown syntax recognized in every conversation type — DMs, group chats, chat rooms
- Live rendering when the message is sent (no preview toggle needed)
- Pairs with the visual formatting toolbar — users pick whichever method they prefer
- Identical rendering on the web app and the mobile app
- No admin setting to configure — enabled by default
Supported syntax#
| Markdown | Rendered |
|---|---|
**bold** | bold |
*italic* | italic |
~~strikethrough~~ | |
`inline code` | inline code |
```code block``` | a multi-line monospaced block |
[link text](https://example.com) | a clickable hyperlink |
How it works#
When a message is rendered, the frontend converts the raw message body through the marked Markdown parser in the browser. The original syntax characters are stored in the database — editing a message lets you tweak the same **bold** source you typed. Re-rendering happens on the fly, so changes propagate instantly to anyone with the thread open.
URL detection is applied to plain links too, so a user typing a bare https://... gets the same clickable result as the explicit [link](url) form. Code blocks suppress URL detection and emoji expansion, which keeps technical content readable.
The visual toolbar wraps the selection in the same Markdown delimiters — clicking the Bold button inserts **…** exactly as a Markdown user would type it.
When it's useful#
| Audience | Why Markdown helps |
|---|---|
| Developer / technical communities | Inline code and fenced code blocks make sharing snippets natural |
| Course cohorts (LMS) | Bold and italic emphasis in study discussions without learning a UI |
| Marketplace vendors | Quick price/SKU emphasis in product Q&A messages |
| Mobile-app users | Markdown is faster than reaching for a toolbar on small screens |
Frequently asked questions#
Can administrators disable Markdown rendering?#
Markdown is part of the core client-side message renderer. There is no separate "disable Markdown" toggle. If you need to transform message text before render, hook the PHP filter bp_better_messages_pre_format_message (or bp_better_messages_after_format_message for post-render HTML) to strip or rewrite messages before they reach the client.
Does Markdown work in chat rooms?#
Yes. Markdown is rendered identically in private conversations, group chats, and public/private chat rooms.
What happens if a user types Markdown that doesn't render correctly?#
Unrecognized syntax is preserved as plain text. For example, an unmatched **bold (with no closing **) will display the asterisks literally. The renderer is conservative — it never produces invalid HTML.
Does Markdown render in email notifications?#
Yes — email notifications pre-render the same Markdown into HTML before sending. Bold, italic, and links render correctly in modern email clients. Inline code and code blocks render in a monospace style. Strikethrough may not display in some older email clients.
Can I add my own Markdown extensions?#
The PHP filter bp_better_messages_after_format_message runs on every server-rendered message body and lets a theme or addon transform the message before it is broadcast to clients. This is the supported way to add custom transformations (footnotes, callouts, internal-link rewriting, etc.).
See also#
- WordPress chat plugin overview — the canonical "What is Better Messages?" page
- oEmbed support — auto-render YouTube / X / SoundCloud embeds in messages
- Stickers — pre-built sticker packs for non-text expression
- REST API for developers — programmatic message rendering