Easily embed Handlebars.js templates in your django templates
Project description
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 type="text/x-handlebars" id="tpl-infos"> {{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 type="text/x-handlebars" id="tpl-django-form"> <form> {% verbatim %} {{#if id}}<h1>{{first}} {{last}}</h1>{{/if}} {% trans "Your id is" %} {{ id }} {% endverbatim %} {{ yourform.as_p }} </form> </script>
Using Ember.js
In settings.py ensure to set the following attribute to True. This is due to Ember.js expecting a slightly different script id declaration
USE_EMBER_STYLE_ATTRS = True
The script block will be rendered like `<script type="text/x-handlebars" data-template-name="%s">`.
LICENSE
Lesser GNU Public License
Handlebars.js is released under the MIT license - Copyright 2011 Yehuda Katz
CHANGELOG
1.3.0 (2015-05-26)
Add Django 1.8 compatibility (thanks @markvl)
1.2.0 (2012-05-30)
Add compatibility with Ember.js with a setting (default False). See README.rst.
1.1.0 (2012-03-26)
Remove dependency to template Egg loader using template tag
1.0.1 (2012-03-16)
Fix packaging
1.0.0 (2012-03-16)
Initial working version
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for django-templatetag-handlebars-1.3.0.zip
Algorithm | Hash digest | |
---|---|---|
SHA256 | 298c9dcb65041148ee7bf4f6684d6c228c47d123fd665505d6d92093da5f5fb5 |
|
MD5 | 12aee219768e9a6911ed6ca3a94a8a8c |
|
BLAKE2b-256 | e408f4c4d7afe6c09b52349fbb9269c4ec475a2dfdc13bfbd4cb0fc450d49f24 |