Skip to main content

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.

A chat message rendering bold, italic, strikethrough, inline code, links, and a bulleted list — all in a single bubble

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#

MarkdownRendered
**bold**bold
*italic*italic
~~strikethrough~~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#

AudienceWhy Markdown helps
Developer / technical communitiesInline code and fenced code blocks make sharing snippets natural
Course cohorts (LMS)Bold and italic emphasis in study discussions without learning a UI
Marketplace vendorsQuick price/SKU emphasis in product Q&A messages
Mobile-app usersMarkdown 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#