How to Highlight Text in Markdown

Highlight text by wrapping it in double equals signs: ==highlighted text==. This is extended syntax, not part of CommonMark or GFM — it works in Obsidian and a handful of other processors, where it renders as a <mark> element with a colored background.

Platform Support

GitHubnot supportedGitLabnot supportedObsidiansupportedDiscordnot supportedSlacknot supportedNotionnot supported

The ==highlight== syntax comes from extended Markdown dialects and was popularized by editors like Obsidian, Typora, and iA Writer. Parser libraries can usually opt in too: markdown-it has a mark plugin, remark has equivalents, and Pandoc enables ==text== through its mark extension. Wherever it is supported, the output is the HTML <mark> element, which browsers render with a yellow background by default. Like other emphasis markers, the equals signs must touch the text on both sides — == spaced out == stays literal even in processors that support the syntax. If you are unsure whether your renderer supports it, the failure mode is at least obvious: unsupported ==text== shows the equals signs in the output rather than silently mangling anything.

Where the double-equals syntax is unsupported but raw HTML passes through — many static site generators, documentation tools, and HTML-exporting pipelines — you can write the <mark> tag directly: <mark>highlighted phrase</mark>. This is also semantically the right element: <mark> means "relevant in the current context", the way a search tool highlights matched terms or a study guide marks passages, which is a different signal than the importance conveyed by <strong>. Because it is a real HTML element, you can restyle the highlight color with CSS wherever you control the stylesheet.

GitHub is the platform people ask about most, and the answer is simply no: GFM has no highlight extension, so ==text== renders with the equals signs visible. The conventional substitutes are **bold** when a few inline words need to stand out, `inline code` when the standout text is a token or value, and the alert callouts (> [!NOTE], > [!IMPORTANT], > [!WARNING]) when a whole block needs attention — alerts render as colored boxes with icons and are the closest visual relative of a highlighter pen on GitHub. Pick by scope: bold for a phrase, code for a value, an alert for a paragraph.

Because highlighting is non-standard, think about where your document will end up. Notes written in Obsidian with ==highlights== degrade to visible equals signs the moment they are pushed to a GitHub repo or run through a default-configuration site generator. If an Obsidian vault feeds a publishing pipeline, either enable a mark plugin in that pipeline or convert ==...== to <mark>...</mark> before publishing. Within Obsidian itself, highlights have a genuinely distinct role worth preserving: writers use bold for structural emphasis and highlights for reader-style annotation — "this is the passage that matters" — and collapsing the two into bold loses that distinction.

Examples

Highlight
Markdown
==highlighted text==
Output

==highlighted text==

Highlight text using double equals signs. Note: Not standard Markdown.

HTML mark fallback
Markdown
This sentence has a <mark>highlighted phrase</mark> in it.
Output

This sentence has a highlighted phrase in it.

Works where raw HTML is allowed, even when the ==syntax== is unsupported.

GitHub-friendly alternative
Markdown
> [!IMPORTANT]
> Review the migration steps before upgrading.
Output

IMPORTANT

Review the migration steps before upgrading.

On GitHub, alert callouts are the closest thing to a block-level highlight.

Common Mistakes

Wrong
==highlight== in a GitHub README
Right
**bold**, `code`, or a > [!IMPORTANT] callout on GitHub

GitHub does not support the highlight extension — the equals signs render literally around your text.

Wrong
== highlighted text ==
Right
==highlighted text==

Like bold and italic markers, the equals signs must touch the text on both sides, even in processors that support the syntax.

Wrong
=single equals=
Right
==double equals==

The extension requires two equals signs on each side. Single equals signs are plain text in every Markdown dialect.

Platform Notes

Obsidian

Native support in both editing and reading views — highlights render with the theme's accent color and can be restyled with CSS snippets.

GitHub

Not supported; ==text== renders literally. Use bold for inline emphasis or [!NOTE]/[!IMPORTANT] alert callouts for block-level attention.

Discord

Not supported — the equals signs appear as typed. Bold and bold-italic are the available standout styles in messages.

Notion

The == syntax is not parsed. Notion has its own text and background color highlights, applied through the toolbar or by typing /color commands.

Frequently Asked Questions

How do I highlight text in Markdown?

Wrap it in double equals signs (==text==) on platforms that support the extension, like Obsidian. Where raw HTML is allowed instead, use the <mark>text</mark> tag directly.

Why does ==highlight== not work on GitHub?

GFM has no highlight extension, so the equals signs render literally. Use **bold** for inline standout or > [!IMPORTANT] alert callouts for block-level attention.

What HTML does ==text== produce?

The <mark> element, which browsers render with a yellow background by default. It carries the meaning "relevant in this context", distinct from the importance of <strong>.

Is highlighting part of standard Markdown?

No. It is extended syntax supported by Obsidian, Typora, iA Writer, and parser plugins (like markdown-it-mark), but absent from CommonMark and GFM.

How do I change the highlight color?

Style the <mark> element with CSS wherever you control the stylesheet. In Obsidian, themes and CSS snippets can restyle highlights; plain Markdown has no color syntax.

Related Syntax

Related Tools