Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Easily embed Handlebars.js templates in your django templates
Branch: master
Pull request Compare This branch is 15 commits behind makinacorpus:master.

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
templatetag_handlebars
.gitignore
CHANGES
LICENSE
MANIFEST.in
README.rst
setup.py

README.rst

django-templatetag-handlebars allows you to embed Handlebars.js templates in your django templates.

Most of the template tag code comes from Miguel Araujo's verbatim snippet.

INSTALL

pip install django-templatetag-handlebars

USAGE

  • Add templatetag_handlebars to your INSTALLED_APPS
  • Add the HTML header :
{% load templatetag_handlebars %}

<head>
{% handlebars_js %}
...
</head>
  • Call the template tag, and write your Handlebars template :
{% tplhandlebars "tpl-infos" %}
    {{total}} {% trans "result(s)." %}
    <p>{% trans "Min" %}: {{min}}</p>
    <p>{% trans "Max" %}: {{max}}</p>
{% endtplhandlebars %}
  • The following block with end-up in your page :
<script id="tpl-infos" type="text/x-handlebars-template">
    {{total}} result(s).
    <p>Min: {{min}}</p>
    <p>Max: {{max}}</p>
<script>
  • Render it, client-side, as usual using Handlebars.js API :
var properties = {
    total: 10,
    min: 4,
    max: 5
};

var template = Handlebars.compile($('#tpl-infos').html()),
    rendered = template(properties);
  • Your rendered string is ready, and waiting to be inserted in your DOM :)
10 result(s).
<p>Min: 4</p>
<p>Max: 5</p>

Advanced

A {% verbatim %} tag is available to escape a specific part. For example, you may want a subpart of your Handlebars template to be rendered by Django :

<script id="tpl-django-form" type="text/x-handlebars-template">
    <form>
        {% verbatim %}
            {{#if id}}<h1>{{ id }}</h1>{{/if}}
        {% endverbatim %}
        {{ yourform.as_p }}
    </form>
</script>

AUTHORS

makinacom

Similar tools

LICENSE

  • Lesser GNU Public License
  • Handlebars.js is released under the MIT license - Copyright 2011 Yehuda Katz
Something went wrong with that request. Please try again.