Sign inDemoInstall


Package Overview
File Explorer

Install Socket

Detect and block malicious and high-risk dependencies



Typography related template filters for Django & Jinja2 applications



Note: This is a fork of the original typogrify project made especially for Engineer<>_. The modifications are very minor:

  • SmartyPants defaults changed so that -- is interpreted as an en-dash and --- is interpreted as an em-dash. I don't know why in the world this isn't the default.

typogrify: Filters to make web typography easier

This application provides a set of custom filters for the Django template system which automatically apply various transformations to plain text in order to yield typographically-improved HTML.

Version 2 changes

  • Django is no longer a requirement. The typogrify filters can be used in any environment by importing them from typogrify.filters
  • Experimental jinja2 support added in typogrify.templatetags.jinja_filters – untested and defintely needs some eyes on it. Might trigger a point release soon to update.


typogrify is a set of functions that take text or html input and mark them up with HTML. it requires the Python port of John Gruber's SmartyPants_ for tokenization.

It includes optional template filters for Django. So you'll need Django if you want to use those.

.._ The Python port of John Gruber's SmartyPants:

To use with Django

BACKWARDS INCOMPATIBILTY NOTE: Version 2 of typogrify has moved the typogrify tag to {% load typogrify_tags %} – This necessary to allow the tags files to import from the rest of the library.

Once typogrify is installed on your system, you can add it to the INSTALLED_APPS setting of any Django project in which you wish to use it, and then use {% load typogrify_tags %} in your templates to load the filters it provides.

Included filters


Wraps ampersands in HTML with <span class="amp"> so they can be styled with CSS. Ampersands are also normalized to &amp;. Requires ampersands to have whitespace or an &nbsp; on both sides. Will not change any ampersand which has already been wrapped in this fashion.


Wraps multiple capital letters in <span class="caps"> so they can be styled with CSS.


Wraps initial quotes in <span class="dquo"> for double quotes or <span class="quo"> for single quotes. Works inside these block elements:

  • h1, h2, h3, h4, h5, h6

  • p

  • li

  • dt

  • dd

Also accounts for potential opening inline elements: a, em, strong, span, b, i.


Applies SmartyPants.


Applies all of the following filters, in order:

  • amp

  • widont

  • smartypants

  • caps

  • initial_quotes


Based on Shaun Inman's PHP utility of the same name, replaces the space between the last two words in a string with &nbsp; to avoid a final line of text with only one word.

Works inside these block elements:

  • h1, h2, h3, h4, h5, h6

  • p

  • li

  • dt

  • dd

Also accounts for potential closing inline elements: a, em, strong, span, b, i.


Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.


Related posts

SocketSocket SOC 2 Logo


  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc