Django Premailer

Django template tag that turns CSS blocks into style attributes using premailer.

It supports Django 1.6+ for Python versions 2.7, 3.3, 3.4, 3.5 and pypy (where the Django version supports the Python version).

Build Status Code Health Code Coverage Documentation Status Latest Version Supported Python versions Downloads

Contents

Installation

You can install django-premailer either via the Python Package Index (PyPI) or from github.

To install using pip;

$ pip install django-premailer

From github;

$ pip install git+https://github.com/alexhayes/django-premailer.git

Usage

Use the premailer template tag around HTML where you need inline CSS:

{% load premailer %}

{% premailer "http://example.com" %}
<html>
<style type="text/css">
h1 { border:1px solid black }
p { color:red;}
.c {
  background-color: #FF6600;
}
.c td {
  background-color: #CCCCCC;
}
</style>
<h1 style="font-weight:bolder">{{ eggs }}</h1>
<p><a href="/blah/">Hej</a></p>
<table class="c">
  <tr>
    <td></td>
  </tr>
</table>
</html>
{% endpremailer %}

The rendered template would look as so;

<html>
<head></head>
<body>
    <h1 style="border:1px solid black; font-weight:bolder">Sausage</h1>
    <p style="color:red"><a href="http://example.com/blah/">Hej</a></p>
    <table style="background-color:#F60" bgcolor="#F60">
      <tr>
        <td style="background-color:#CCC" bgcolor="#CCC"></td>
      </tr>
    </table>
</body>
</html>

Settings

If you need more control over premailer’s init parameters you can define them using PREMAILER_OPTIONS.

For example, in your settings file;

PREMAILER_OPTIONS = dict(base_url='http://example.com',
                         remove_classes=False)

See https://github.com/peterbe/premailer/blob/master/premailer/premailer.py#L149 for a list of other possible options.

Developer Documentation

Contributions

Contributions are more than welcome!

To get setup do the following;

mkvirtualenv --python=/usr/bin/python3.5 django-premailer
git clone https://github.com/alexhayes/django-premailer.git
cd django-premailer
pip install -r requirements/dev.txt
pip install Django>=1.9,<1.10

Running Tests

Once you’ve checked out you should be able to run the tests;

tox

Or run all environments at once using detox;

detox

Creating Documentation

cd docs
make clean html

Internal Module Reference

Release:0.2.0
Date:Jul 27, 2017

License

This software is licensed under the MIT License. See the LICENSE.

Thanks

Author

Alex Hayes <alex@alution.com>