Support A/B testing for Jinja2 templates
Project description
This is an A/B testing extension for Jinja. It allows you to encode experiments in your templates and renders the experiment selected by the AB_EXPERIMENT environment variable. ‘control’ is the default experiment name if AB_EXPERIMENT is not specified!
To install:
pip install jinja-ab
Enable the extension in your code like this:
import os import jinja_ab env = Environment( loader=FilesystemLoader(), extensions=[jinja_ab.JinjaAbExperimentExtension], ) os.environ['AB_EXPERIMENT'] = 'v1' template = env.get_template('index.html') return template.render(context)
The template syntax is:
{% experiment control %}This is the control{% endexperiment %} {% experiment v1 %}This is version 1{% endexperiment %}
Alternative syntax is also supported:
{% ab control %}This is the control{% endab %} {% ab v1 %}This is version 1{% endab %}
You can also mix the two tags in a single template:
{% experiment control %}This is the control{% endexperiment %} {% ab v1 %}This is version 1{% endab %}
Single and double quoted names are also supported!
NOTE: this extension deals with rendering the template string based on the value of AB_EXPERIMENT. It is up to you or your Jinja2 based tools to decide what to do with the result. At Mr. Senko we use this extension as part of the pelican-ab plugin.
Contributing
Source code and issue tracker are at https://github.com/MrSenko/jinja-ab
Commercial support
Mr. Senko provides commercial support for open source libraries, should you need it!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.