├── .gitignore ├── Cakefile ├── MANIFEST.in ├── Makefile ├── README.md ├── README.rst ├── examples ├── dynamic │ ├── README.md │ ├── app.py │ └── templates │ │ ├── base.html │ │ └── layout.html └── static │ ├── README.md │ ├── generate.sh │ ├── index.html │ ├── templates.js │ └── templates │ ├── base.html │ └── layout.html ├── jsjinja ├── __init__.py ├── compiler.py ├── ext.py ├── lib │ ├── jinja2.runtime.js │ └── jinja2.runtime.min.js ├── src │ ├── filters.coffee │ ├── globals.coffee │ ├── runtime.coffee │ └── tests.coffee ├── tests │ ├── __init__.py │ ├── templates │ │ ├── block.tmpl │ │ ├── condexpr.tmpl │ │ ├── context.tmpl │ │ ├── eval.tmpl │ │ ├── extends.tmpl │ │ ├── filters.tmpl │ │ ├── for.tmpl │ │ ├── globals.tmpl │ │ ├── if.tmpl │ │ ├── import.tmpl │ │ ├── include.tmpl │ │ ├── macro.tmpl │ │ ├── partials │ │ │ ├── include.tmpl │ │ │ └── layout.tmpl │ │ ├── set.tmpl │ │ ├── tests.tmpl │ │ └── unicode.tmpl │ └── test_templates.py └── utils.py ├── readme_template.tmpl ├── requirements-test.txt ├── requirements.txt ├── requirements_utils.py ├── run-tests.py ├── setup.cfg ├── setup.py └── test.sh /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *.egg-info 3 | build/ 4 | dist/ 5 | try*.py 6 | *.sublime-project 7 | *.sublime-workspace 8 | -------------------------------------------------------------------------------- /Cakefile: -------------------------------------------------------------------------------- 1 | # Module requires 2 | {spawn, exec} = require 'child_process' 3 | sys = require 'sys' 4 | Closure = require 'closure-compiler' 5 | 6 | printOutput = (process) -> 7 | process.stdout.on 'data', (data) -> sys.print data 8 | process.stderr.on 'data', (data) -> sys.print data 9 | 10 | watchJS = -> 11 | coffee = exec 'coffee -cj ./jsjinja/lib/jinja2.runtime.js ./jsjinja/src/runtime.coffee ./jsjinja/src/globals.coffee ./jsjinja/src/filters.coffee ./jsjinja/src/tests.coffee ' 12 | closure = Closure.compile null, js:'./jsjinja/lib/jinja2.runtime.js', js_output_file:'./jsjinja/lib/jinja2.runtime.min.js', -> 13 | printOutput(coffee) 14 | 15 | 16 | task 'sbuild', 'Build task for Sublime Text', -> 17 | watchJS() 18 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include Makefile README.md README.rst 2 | recursive-include jsjinja/lib * 3 | recursive-include jsjinja/tests * -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | develop: 2 | python setup.py develop 3 | 4 | build: 5 | cake sbuild 6 | python setup.py build 7 | 8 | test: 9 | python setup.py nosetests 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | JsJinja: Render Jinja2 Templates in JS 2 | ======================================= 3 | 4 | JsJinja lets you use your [Jinja2](http://jinja.pocoo.org/) templates 5 | in Javascript. It **compile the Jinja2 templates to Javascript with 6 | no restrictions**. 7 | 8 | The js can be generated via command line `jsjinja