This series has covered CommonMark’s core syntax and GitHub-Flavored Markdown’s most common extensions, like tables and task lists. Beyond those two standards, a handful of other syntax extensions have become common enough to expect on many platforms, even though none of them are officially part of GFM. This guide covers highlight, subscript, superscript, and emoji shortcode syntax, and is upfront about the fact that all four depend on plugin support rather than being guaranteed to work everywhere.
Key Takeaways
- Highlight text with double equals signs: ==highlighted text==.
- Subscript uses single tildes (~sub~) and superscript uses single carets (^sup^).
- Emoji shortcodes like :tada: render as an emoji character on platforms that support them.
- None of these four are part of core CommonMark or GFM; each requires a specific plugin or renderer feature.
How Do I Highlight Text in Markdown?
Wrap text in double equals signs (==) to mark it as highlighted, similar to how a highlighter pen would mark printed text.
This is ==highlighted text== in a sentence.On a renderer that supports this extension, it displays with a highlight background:
This is <mark>highlighted text</mark> in a sentence.This syntax comes from various Markdown flavors (like the one used by Obsidian and some remark plugins), not from CommonMark or GFM. Without plugin support, ==text== renders as literal equals signs.
How Do I Write Subscript and Superscript?
Wrap text in single tildes (~) for subscript, or single carets (^) for superscript.
Water is H~2~O.
The formula is E = mc^2^.On a supporting renderer, this displays with the wrapped text shifted below or above the baseline:
Water is H<sub>2</sub>O.
The formula is E = mc<sup>2</sup>.A single tilde (~sub~) is subscript, while GFM strikethrough uses double tildes (~~text~~). Mixing these up is an easy mistake since the markers look similar at a glance.
How Do I Write Emoji Shortcodes?
An emoji shortcode wraps a name in colons, like :tada: or :rocket:. Platforms that support shortcodes convert them into the matching emoji character.
Great work team! :tada: :rocket:On GitHub and similar platforms, this renders as:
Great work team! 🎉 🚀
Not every platform recognizes the same shortcode names, and some don’t support shortcodes at all, rendering the colons and text literally instead. Stick to typing the emoji character directly if you need guaranteed cross-platform behavior.
Why Do These Extensions Need Plugins?
CommonMark and GFM both define fixed, versioned specifications. Anything outside those specs, including all four features in this article, is implemented independently by whichever tool renders your Markdown: a static site generator’s remark/rehype plugin chain, an editor like Obsidian, or a platform like GitHub. That means the exact same source file can render differently depending on where it’s viewed.
Summary Checklist
==text==highlights text, on renderers that support it.~sub~is subscript;^sup^is superscript. Don’t confuse subscript with GFM’s double-tilde strikethrough.:shortcode:renders as an emoji on platforms that recognize the name.- All four are non-standard extensions, not part of CommonMark or GFM.
- Test on your actual target platform before relying on any of these in published content.
Frequently Asked Questions
Will these render correctly on GitHub?
Partially. GitHub supports emoji shortcodes in issues, pull requests, and README files, but does not support the highlight, subscript, or superscript syntax shown here.
What happens if my renderer doesn’t support one of these?
The raw syntax characters print literally. ==text== shows as ==text==, ~sub~ shows as ~sub~, and so on, since there’s no fallback behavior defined for unsupported extensions.
Is there a standard emoji list I should stick to?
Not universally. Different platforms maintain their own shortcode lists (GitHub’s set differs slightly from Slack’s or Discord’s), so a shortcode that works on one platform may not exist on another.
What to Read Next
- Markdown Emphasis Guide: Bold, Italic, and Strikethrough — Review GFM’s official strikethrough syntax alongside this article’s non-standard extensions.
- Using Raw HTML Inside Markdown — See the fallback option (
<mark>,<sub>,<sup>) for when your renderer doesn’t support these shortcuts.
Related Articles
Deepen your understanding with these curated continuations.

Autolinks in Markdown: Bare URLs and Emails
Learn the difference between CommonMark's angle-bracket autolinks and GitHub-Flavored Markdown's extended autolinks for bare URLs and email addresses.

Definition Lists in Markdown
Learn the Markdown Extra-style definition list syntax for terms and descriptions, useful for glossaries and API documentation, plus which tooling supports it.

Escaping Special Characters in Markdown
Learn how to escape asterisks, underscores, brackets, and other special characters in Markdown so they display as literal text instead of triggering formatting.


