Python-Markdown extension that replaces common smileys with their Unicode emoji emoticons.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
README.md
mdx_unimoji.py
setup.py

README.md

Unicode Emojis for Python-Markdown

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

Usage:

>>> 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)]))
... # doctest: +NORMALIZE_WHITESPACE
<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;
}

Install

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

pip install mdx_unimoji

or

pip install --upgrade git+git://github.com/kernc/mdx_unimoji.git

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

HF!