django_compressor filter to compile ember templates
Project description
Ember Compressor Compiler
=========================
[](https://travis-ci.org/Juvenal1228/ember-compressor-compiler)
Purpose
-------
This tool is meant to be used as an extension to [django-compressor](https://github.com/jezdez/django_compressor)
It precompiles [handlebars.js](https://github.com/wycats/handlebars.js) templates specifically for [ember.js](https://github.com/emberjs/ember.js)
Features
--------
- platform independent
- no need to install node.js packages
- flexible template naming conventions
- inline handlebars in django templates
- 100% test coverage
- [PEP 8](http://www.python.org/dev/peps/pep-0008/) compliance
- [semver](http://semver.org/) compliance
Installing
----------
Install with pip/easy_install from the pypi
`pip install ember-compressor-compiler`
or clone the latest source
git clone https://github.com/Juvenal1228/ember-compressor-compiler.git
cd ember-compressor-compiler
python setup.py install
You must also install [node.js](http://nodejs.org/) or [PyV8](https://code.google.com/p/pyv8/)
The latest versions of node.js can be found [here](http://nodejs.org/download/)
Using
-----
Using this tool is as simple as installing it and adding it to the `COMPRESS_PRECOMPILERS` django setting
```python
COMPRESS_PRECOMPILERS = (
('text/x-handlebars', 'embercompressorcompiler.filter.EmberHandlebarsCompiler'),
)
```
Then, in your django templates you can embed handlebars templates like so
```html+django
{% load staticfiles %}
{% load compress %}
{% compress js %}
<script type="text/x-handlebars" src="{% static 'app/templates/application.hbs' %}" ></script>
<script type="text/x-handlebars" data-template-name="index">
{{outlet}}
</script>
{% endcompress %}
```
Template Names
--------------
Template names are determined in one of two ways
1. the `data-template-name` attribute on the `script` tag in your django template
2. the `src` attribute on the `script` tag in your django template
When specified, the `data-template-name` value is used verbatim
If not, the `src` value is manipulated to give proper template names.
- the file extensions `.handlebars` and `.hbs` are removed
- everything before the parent directory `templates` is removed
```html+django
<!-- results in template named 'application' -->
<script type="text/x-handlebars" src="{% static 'app/templates/application.hbs' %}" ></script>
<!-- results in template named 'example/index' -->
<script type="text/x-handlebars" src="{% static 'app/templates/example/index.handlebars' %}" ></script>
```
Advanced Usage
--------------
If you need to change the template naming behavior, you can subclass `embercompressorcompiler.filter.EmberHandlebarsCompiler`
```python
from embercompressorcompiler.filter import EmberHandlebarsCompiler
class MyCompiler(EmberHandlebarsCompiler):
# override default parent directory
parent_dir = 'tpls'
# override default extensions
extensions = ['.tpl']
```
Then you register your own compiler subclass in `COMPRESS_PRECOMPILERS`
```python
COMPRESS_PRECOMPILERS = (
('text/x-handlebars', 'myapp.MyCompiler'),
)
```
=========================
[](https://travis-ci.org/Juvenal1228/ember-compressor-compiler)
Purpose
-------
This tool is meant to be used as an extension to [django-compressor](https://github.com/jezdez/django_compressor)
It precompiles [handlebars.js](https://github.com/wycats/handlebars.js) templates specifically for [ember.js](https://github.com/emberjs/ember.js)
Features
--------
- platform independent
- no need to install node.js packages
- flexible template naming conventions
- inline handlebars in django templates
- 100% test coverage
- [PEP 8](http://www.python.org/dev/peps/pep-0008/) compliance
- [semver](http://semver.org/) compliance
Installing
----------
Install with pip/easy_install from the pypi
`pip install ember-compressor-compiler`
or clone the latest source
git clone https://github.com/Juvenal1228/ember-compressor-compiler.git
cd ember-compressor-compiler
python setup.py install
You must also install [node.js](http://nodejs.org/) or [PyV8](https://code.google.com/p/pyv8/)
The latest versions of node.js can be found [here](http://nodejs.org/download/)
Using
-----
Using this tool is as simple as installing it and adding it to the `COMPRESS_PRECOMPILERS` django setting
```python
COMPRESS_PRECOMPILERS = (
('text/x-handlebars', 'embercompressorcompiler.filter.EmberHandlebarsCompiler'),
)
```
Then, in your django templates you can embed handlebars templates like so
```html+django
{% load staticfiles %}
{% load compress %}
{% compress js %}
<script type="text/x-handlebars" src="{% static 'app/templates/application.hbs' %}" ></script>
<script type="text/x-handlebars" data-template-name="index">
{{outlet}}
</script>
{% endcompress %}
```
Template Names
--------------
Template names are determined in one of two ways
1. the `data-template-name` attribute on the `script` tag in your django template
2. the `src` attribute on the `script` tag in your django template
When specified, the `data-template-name` value is used verbatim
If not, the `src` value is manipulated to give proper template names.
- the file extensions `.handlebars` and `.hbs` are removed
- everything before the parent directory `templates` is removed
```html+django
<!-- results in template named 'application' -->
<script type="text/x-handlebars" src="{% static 'app/templates/application.hbs' %}" ></script>
<!-- results in template named 'example/index' -->
<script type="text/x-handlebars" src="{% static 'app/templates/example/index.handlebars' %}" ></script>
```
Advanced Usage
--------------
If you need to change the template naming behavior, you can subclass `embercompressorcompiler.filter.EmberHandlebarsCompiler`
```python
from embercompressorcompiler.filter import EmberHandlebarsCompiler
class MyCompiler(EmberHandlebarsCompiler):
# override default parent directory
parent_dir = 'tpls'
# override default extensions
extensions = ['.tpl']
```
Then you register your own compiler subclass in `COMPRESS_PRECOMPILERS`
```python
COMPRESS_PRECOMPILERS = (
('text/x-handlebars', 'myapp.MyCompiler'),
)
```
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
Close
Hashes for ember-compressor-compiler-0.3.1.zip
Algorithm | Hash digest | |
---|---|---|
SHA256 | 030eb25f035d7297e8d4b478af8e7039c720355c18045625d41342f3392c5500 |
|
MD5 | 07bbde62e1f89732cf3a2a8ab71da140 |
|
BLAKE2b-256 | 25648e1a675259bc3decff1af5e23dc4940eb028b0e3651516ada4a4abcd0425 |