Skip to content
Back to Journal
GuideMay 6, 2026·5 min read

How to Add Emoji in Markdown

Use emoji shortcodes or paste unicode characters in markdown. Platform support and the emoji shortcode cheat sheet.

The quick answer: Paste the emoji character directly — 😄 🚀 ✅ — it works everywhere. Use shortcodes like :smile: only on platforms that support them (GitHub, Discord, Slack).

Method 1: Paste Unicode Emoji (Universal)

The simplest and most portable method is pasting the emoji character directly from your keyboard emoji picker: Mac: Press Ctrl+Cmd+Space to open the emoji picker Windows: Press Windows+. (period) or Windows+; (semicolon) Linux: Ctrl+Shift+U then enter the Unicode code point

Any emoji you paste renders in all markdown environments — GitHub, Notion, Obsidian, Discord, Slack, PDF exports, email — everywhere. No platform-specific syntax. Deployment complete! 🚀 Build status: ✅ Time: 2m 34s

Method 2: Emoji Shortcodes (Platform-Specific)

On platforms that support them, wrap the emoji name in colons: :smile: → 😄 :rocket: → 🚀 :warning: → ⚠️ :white_check_mark: → ✅ :tada: → 🎉 :fire: → 🔥 :x: → ❌

Shortcodes are resolved at render time. On GitHub and Discord they work great. On plain markdown renderers, :smile: renders as the literal text :smile: — not as an emoji.

Finding Emoji Shortcodes

GitHub emoji cheat sheet: github.com/ikatyang/emoji-cheat-sheet — the complete list of ~3,000 shortcodes supported by GitHub. Browse by category or search by keyword. In GitHub UI: Type : in any GitHub comment, issue, or PR description to open the autocomplete emoji picker. Start typing the name and it filters in real time. Emojipedia: emojipedia.org — find any emoji by description and copy the Unicode character directly.

Platform-by-Platform Breakdown

GitHub and GitLab

Both support emoji shortcodes (:shortcode:) and direct Unicode emoji. GitHub's autocomplete appears when you type : in a comment or issue. Shortcodes in README files render on GitHub.com but display as literal text if you view the raw .md file.

Obsidian

Obsidian renders Unicode emoji correctly in both the editor and preview. Shortcodes are not resolved by default — install the "Emoji Toolbar" community plugin if you want shortcode support.

Notion

Notion renders Unicode emoji everywhere. Notion also has its own emoji picker (type / and search for emoji). Emoji shortcodes from GitHub are not resolved in Notion markdown imports.

Discord

Discord supports both Unicode emoji and shortcodes. Discord's shortcode list is similar to but not identical to GitHub's. Discord also supports custom server emoji with the :custom_emoji: syntax.

Slack

Slack supports shortcodes and Unicode emoji. Slack has its own shortcode list, and workspaces can add custom emoji. Standard shortcodes like :rocket: and :white_check_mark: work in Slack.

Popular Emoji for Technical Documentation

These emoji are widely understood in technical contexts and add visual scanning cues:

| Emoji | Shortcode | Use for | | --- | --- | --- | | ✅ | :white_check_mark: | Supported, done, passing | | ❌ | :x: | Not supported, failed, removed | | ⚠️ | :warning: | Caution, deprecated, breaking change | | 🚀 | :rocket: | Launch, deploy, release | | 📝 | :memo: | Notes, documentation, to-do | | 🔒 | :lock: | Security, authentication, private | | 💡 | :bulb: | Tips, ideas, hints | | 🐛 | :bug: | Bug fixes | | 🔧 | :wrench: | Configuration, settings | | ⚡ | :zap: | Performance, fast, optimization | | 📦 | :package: | Package, release artifact | | 🔥 | :fire: | Hot, trending, major |

Emoji in Tables and Headings

Unicode emoji works in headings and table cells: ## ✅ Supported Features | Feature | Status | | --- | --- | | Dark mode | ✅ | | PDF export | ✅ | | Custom fonts | ❌ |

Emoji in PDF Exports

When you export markdown to PDF via MarkdownTools, Unicode emoji renders correctly — the PDF renderer uses web fonts that include emoji glyphs. If you see empty boxes instead of emoji, the issue is a missing emoji font; switch to a different theme.

Emoji shortcodes (:rocket:) are NOT automatically resolved by MarkdownTools. Use the Unicode character for guaranteed rendering in exports.

Common Mistakes

Using Shortcodes in Non-Supported Renderers

:smile: in a Notion markdown import, Obsidian preview, or standard markdown renderer → renders as literal text :smile:

Use the Unicode character instead for portability.

Emoji in Code Blocks

Emoji inside backtick code spans or fenced code blocks renders as the emoji character (not a code example of the shortcode). If you want to show a shortcode literally in a code block, that's fine — it displays as :shortcode: text.

System Font Emoji vs Web Font Emoji

Emoji appearance varies by operating system — the same 🎉 emoji looks different on macOS, Windows, and Android. For PDF exports intended for professional use, be aware that emoji appearance depends on the rendering environment.

Accessibility Note

Emoji convey information visually but are not always accessible. Screen readers announce emoji by their Unicode name — 🚀 is read as "rocket" by most screen readers. Use emoji to supplement text, not replace it. Don't use emoji as the only indicator of status — always pair with text: "Status: ✅ Passing" not just "✅".


Full reference: Markdown Emoji.

Ready to put this into practice? Paste your markdown into the free MarkdownTools PDF exporter or HTML converter — no signup required.

Frequently Asked Questions

How do you add emoji in markdown?

Two methods work: (1) paste the Unicode emoji character directly — 🎉 — which works everywhere, or (2) use emoji shortcodes like :tada: on platforms that support them (GitHub, Discord, Slack).

What are emoji shortcodes in markdown?

Emoji shortcodes are colon-wrapped names like :smile: or :rocket: that some platforms (GitHub, Discord, Slack) convert to emoji characters. They are not standard markdown — plain CommonMark renderers will display the literal :smile: text.

Do emoji work in markdown PDF exports?

Yes, Unicode emoji (pasted characters like 🚀) render correctly in MarkdownTools PDF exports. Emoji shortcodes (:rocket:) only work if your PDF renderer resolves them — MarkdownTools does not automatically convert shortcodes to emoji.

Where can I find all GitHub emoji shortcodes?

The complete list is at github.com/ikatyang/emoji-cheat-sheet. You can also type a colon in GitHub issues or PR comments to see an autocomplete picker with all supported emoji.

MT

MarkdownTools Team

May 6, 2026

Try it free

Make your AI output beautiful

Paste markdown from ChatGPT or Claude. Pick a theme. Export as PDF or HTML in seconds.

Open App — It's Free