skip to navigation
skip to content

mdx_unimoji 1.0

Python-Markdown extension that replaces common smileys with their Unicode emoji emoticons. ;)

Converts defined emoticon symbols to Unicode emojis, supported on a variety of devices 1.


>>> from __future__ import print_function
>>> from markdown import markdown
>>> text = 'I <3 you! Just kidding. :P'
>>> print(markdown(text, ['unimoji']))    # doctest: +NORMALIZE_WHITESPACE
<p>I <span class="emoji" style="color:red">❤</span> you! \
Just kidding. <span class="emoji">😛</span></p>

NOTE: The emojis are only replaced when whitespace-delimited on both sides!

The following options are accepted:

  • emoji, the emoticon-to-list-of-aliases mapping,
  • span_class, the class name of the encompassing <span> element (default: ‘emoji’). No element is created if None.

An example with these custom settings:

>>> from mdx_unimoji import UnimojiExtension
>>> img_heart = '<img alt="love" src="heart.png"/>'
>>> img_tongue = '<img alt=":P" src="tongue.png"/>'
>>> overrides = UnimojiExtension.EMOJI
>>> overrides.update({img_heart: ['<3'],
...                   img_tongue: ':p :P :-p :-P'.split()})
>>> print(markdown(text,
...                extensions=[UnimojiExtension(span_class='other',
...                                             emoji=overrides)]))
<p>I <img alt="love" class="other" src="heart.png" /> you! \
Just kidding. <img alt=":P" class="other" src="tongue.png" /></p>

You can use the span_class value in your CSS, e.g.:

.emoji {
    font-family: "Apple Color Emoji", "Segoe UI Emoji",
                 "Noto Color Emoji", EmojiSymbols, "DejaVu Sans", Symbola;


To install and make available to Markdown, you can issue:

pip install mdx_unimoji


pip install --upgrade git+git://

Then use the above provided examples to figure your way around.


File Type Py Version Uploaded on Size
mdx_unimoji-1.0.tar.gz (md5) Source 2016-09-15 3KB