How to Use Emoji in Markdown
By the MDConverter team Β· Updated Β· 2 min read
Quick answer
There are two ways to put emoji in Markdown: paste the emoji character itself (π), which works everywhere, or type a shortcode between colons (:rocket:), which only works in apps that support shortcodes β GitHub, GitLab, Slack, Discord and many site generators. Shortcodes are not part of CommonMark, so pasting the real character is the portable choice for files that will be converted or published elsewhere.
Option 1: paste the emoji character
Emoji are ordinary Unicode text, so they work in any Markdown file, heading, list or table. Open your system's emoji picker to insert one:
- Windows: Win + .
- macOS: Ctrl + Cmd + Space (or the π key)
- Linux (GNOME): Ctrl + . in most apps, or the Characters app
## π Release 2.0
- β
Dark mode
- π Fixed login redirect
- β οΈ Requires Node 22π Release 2.0
- β Dark mode
- π Fixed login redirect
- β οΈ Requires Node 22
Option 2: shortcodes like :rocket:
Shortcodes are converted to emoji by the app, not by Markdown. In a renderer without shortcode support (like the one used for examples on this site, which follows the GFM spec) they stay as text:
Shipped :rocket: and fixed :bug: today :tada:Shipped :rocket: and fixed :bug: today :tada:
Popular shortcodes on GitHub, Slack and Discord:
| Emoji | Shortcode | Emoji | Shortcode | |
|---|---|---|---|---|
| π | :rocket: |
β | :white_check_mark: |
|
| π | :tada: |
β | :x: |
|
| π | :bug: |
β οΈ | :warning: |
|
| β¨ | :sparkles: |
π | :memo: |
|
| π₯ | :fire: |
π‘ | :bulb: |
|
| π | :+1: / :thumbsup: |
β€οΈ | :heart: |
Names differ slightly between apps, so test a shortcode before relying on it.
Emoji in commit messages and changelogs
Some teams prefix commits with emoji to show the type of change (the "gitmoji" convention: β¨ feature, π fix, π docs). If you do, use the Unicode character rather than the shortcode in files outside GitHub, because tools that generate changelogs may not convert shortcodes.
Emoji when converting Markdown
Unicode emoji pass through every converter on this site unchanged β into Word, PDF, Google Docs, Slack and plain text. How they look depends on the fonts of the app that opens the file: Word shows them in color on Windows 11 and macOS, and older systems may show a black-and-white glyph. Shortcodes are converted as text.
Shortcode support by app
| App | Supported | Notes |
|---|---|---|
| GitHub / GitLab | Yes | Shortcodes in files, issues and comments, with autocomplete. |
| Slack, Discord | Yes | Shortcodes and custom server emoji. |
| Obsidian | No | Not built in; community plugins add shortcodes. Unicode emoji work. |
| VS Code preview | No | Not built in; extensions add it. |
| MkDocs (Material), Docusaurus, Hugo | Partly | Available through extensions or the enableEmoji setting. |
| Word, Google Docs | No | Paste the emoji character instead. |
Common mistakes and how to fix them
| Problem | Fix |
|---|---|
:smile: shows as text | The app does not support shortcodes. Paste π instead. |
| Emoji shows as a square box | The viewerβs font has no glyph for that emoji (often a newer emoji on an older system). |
| Emoji in a heading breaks the anchor link | Emoji are removed from GitHub anchors, so ## π Launch links as #-launch. Check the generated anchor. |
Tools for this
Frequently Asked Questions About Emoji
Comprehensive answers to common technical, formatting, security, and compatibility questions.
Related reading
- Markdown Text Formatting: Bold, Italic, Strikethrough and More β Bold, italic, strikethrough, underline, highlight, superscript and subscript β with app support.
- Markdown Headings: Syntax, Levels and Linking to a Heading β Heading levels, the setext alternative, anchor links and the mistakes that break headings.
- Markdown Flavors: CommonMark vs GitHub Flavored Markdown and More β Why the same Markdown renders differently, and what each major flavor adds.