/django-emoticons

A usefull and incredible Django application that allow you to use emoticons in your templates :)

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

django-emoticons mrgreen

Build Status - develop branch Coverage of the code

Django-emoticons is a django application providing utilities to add emoticons in your templates. Pretty incredible no?

Once you have installed the package in your PYTHON_PATH, register the emoticons and django.contrib.staticfiles apps in your INSTALLED_APPS project's section.

INSTALLED_APPS = (
  ...
  'django.contrib.staticfiles',
  'emoticons',
  ...
)

For our example we will make a template who display the field content of a model, this field has this value:

Coding is fun and sexy :D

So in our templates we will load the emoticons_tags library and use the emoticons filter:

{% load emoticons_tags %}

{{ object.content|emoticons }}

Which will render:

Coding is fun and sexy smile

The emoticons app also provides a tag named emoticons for converting raw text.

{% load emoticons_tags %}
{% emoticons %}
Documenting is boring but usefull :p
{% endemoticons %}

Which will render :

Documenting is boring but usefull razz

Excluding content within specific markup:

{% load emoticons_tags %}
{% emoticons "h3" %}
<h3>Serious title :[</h3>
<p>Documenting is boring but usefull :p</p>
{% endemoticons %}

Which will render :

Serious title :[ Documenting is boring but usefull razz

If you want to retrieve a list of all availables emoticons you can use the emoticons_index tag.

{% load emoticons_tags %}
{% emoticons_index as emoticons_list %}
{% for emoticons in emoticons_list %}
<p>{{ emoticons.0|emoticons }}: {{ emoticons|join:" " }}</p>
{% endfor %}

You can use differents settings for customizing the application:

  • EMOTICONS_DIRECTORY

    The directory where the emoticons files are located, use 'emoticons' as default.

  • EMOTICONS_LIST

    The list of the emoticons used by the application, something like this:

    (('(devil)', 'devil.gif'),
     ('(angel)', 'angel.gif'),
     ((':)', ':-)', ':=)', '(smile)'), 'smile.gif'),
     ((':(', ':-(', ':=(', '(sad)'), 'sadsmile.gif'),
    )
    

If the HTML code of the emoticons does not fit to your needs, you can override the 'emoticons/emoticon.html' template to adjust it.