django-jstemplate icondjango-jstemplate 1.3.2

A Django template tag for embedding Mustache.js -- or other JavaScript templates -- templates safely
django-jstemplate is a templatetag framework for easier integration of mustache.js, dust.js, handlebars.js, or other JavaScript templates with Django templates. Also will wrap your templates in elements expected for libraries such as ICanHaz.js. Django-jstemplates is extensible, so if your favorite template library is not included, it's easy to add. Inspired by django-icanhaz.

Quick Usage

(Read the full docs on Read the Docs)

Add "jstemplate" to your INSTALLED_APPS setting.

app/jstemplates/main.mustache:

< div >
 < p >This is {{ name }}'s template< /p >
< /div >

app/templates/main.html:

{% load jstemplate %}

< html >
< head >
 < script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js" >< /script >
 < script src="{{ STATIC_URL }}libs/mustache-0.3.0.js" >< /script >
 < script src="{{ STATIC_URL }}libs/django.mustache.js" >< /script >
< /head >

< body >
 < div id="dynamic-area" >< /div >

 {% mustachejs "main" %}

 < script >
 $(document).ready(function() {

 var $area = $('#dynamic-area')
 , template;

 template = Mustache.template('main');
 $area.html(template.render());

 });
 < /script >
< /body >
< /html >


Rationale

The collision between Django templates' use of {{ and }} as template variable markers and mustache.js' use of same has spawned a variety of solutions. One solution simply replaces [[ and ]] with {{ and }} inside an mustachejs template tag; another makes a valiant attempt to reconstruct verbatim text within a chunk of a Django template after it has already been mangled by the Django template tokenizer.

I prefer to keep my JavaScript templates in separate files in a dedicated directory anyway, to avoid confusion between server-side and client-side templating. So this solution is essentially just an "include" tag that avoids parsing the included file as a Django template.

last updated on:
September 8th, 2012, 5:36 GMT
price:
FREE!
developed by:
Mjumbe Wawatu Ukweli
license type:
BSD License 
category:
ROOT \ Internet \ Django Plugins

FREE!

In a hurry? Add it to your Download Basket!

user rating

UNRATED
0.0/5
 

0/5

What's New in This Release:
  • All template renderers handle unicode characters.
read full changelog

Add your review!

SUBMIT