django-smarty

A Django template filter to convert ASCII punctuation into typographic punctuation HTML entities.


License
BSD-3-Clause
Install
pip install django-smarty==0.1.3

Documentation

Django Smarty

PyPI version

Django Smarty is a Django template filter application to convert ASCII punctuation characters into smart typographic punctuation HTML entities with SmartyPants. Uses the Python smartypants package.

Install

$ pipenv install django-smarty

Add to settings.py.

INSTALLED_APPS = [
    # ...
    'smarty',
]

Usage

{% load smarty_tags %}

{{ post.body|smarty }}

Result:

“Hello—world!”

Settings

smarty is a filter composed of several smaller filters:

  • smartypants is the original SmartyPants
  • smartycaps wraps capital letters in <span class="initialism"></span>

One can apply any filter individually. For example, if one preferred the original SmartyPants, write {{ post.body|smartypants }}.

One can customize the application and order of smarty filters with the SMARTY_FILTERS setting. By default, the SMARTY_FILTERS setting is:

SMARTY_FILTERS = [
    'smartypants',
    'smartycaps',
]

One can also customize the HTML class of smartycaps with the SMARTY_CAPS_CLASS setting. By default, the SMARTY_CAPS_CLASS setting is:

SMARTY_CAPS_CLASS = 'initialism'