jinja2
~~~~~~
- Jinja is a `sandboxed`_ template engine written in pure Python. It
- provides a `Django`_ like non-XML syntax and compiles templates into
- executable python code. It's basically a combination of Django templates
- and python code.
+ Jinja2 is a template engine written in pure Python. It provides a
+ Django inspired non-XML syntax but supports inline expressions and
+ an optional sandboxed environment.
Nutshell
--------
- Here a small example of a Jinja template::
+ Here a small example of a Jinja2 template::
{% extends 'base.html' %}
{% block title %}Memberlist{% endblock %}
{% block content %}
<ul>
{% for user in users %}
- <li><a href="{{ user.url|e }}">{{ user.username|e }}</a></li>
+ <li><a href="{{ user.url }}">{{ user.username }}</a></li>
{% endfor %}
</ul>
{% endblock %}
- Philosophy
- ----------
- Application logic is for the controller but don't try to make the life
- for the template designer too hard by giving him too few functionality.
-
- For more informations visit the new `jinja webpage`_ and `documentation`_.
+ :copyright: (c) 2010 by the Jinja Team.
+ :license: BSD, see LICENSE for more details.
+"""
+__docformat__ = 'restructuredtext en'
+__version__ = '2.7-dev'
- Note
- ----
+# high level interface
+from jinja2.environment import Environment, Template
- This is the Jinja 1.0 release which is completely incompatible with the
- old "pre 1.0" branch. The old branch will still receive security updates
- and bugfixes but the 1.0 branch will be the only version that receives
- support.
+# loaders
+from jinja2.loaders import BaseLoader, FileSystemLoader, PackageLoader, \
+ DictLoader, FunctionLoader, PrefixLoader, ChoiceLoader, \
+ ModuleLoader
- If you have an application that uses Jinja 0.9 and won't be updated in
- the near future the best idea is to ship a Jinja 0.9 checkout together
- with the application.
+# bytecode caches
+from jinja2.bccache import BytecodeCache, FileSystemBytecodeCache, \
+ MemcachedBytecodeCache
- The `Jinja tip`_ is installable via `easy_install` with ``easy_install
- Jinja==dev``.
+# undefined types
+from jinja2.runtime import Undefined, DebugUndefined, StrictUndefined
- .. _sandboxed: http://en.wikipedia.org/wiki/Sandbox_(computer_security)
- .. _Django: http://www.djangoproject.com/
- .. _jinja webpage: http://jinja.pocoo.org/
- .. _documentation: http://jinja.pocoo.org/documentation/index.html
- .. _Jinja tip: http://dev.pocoo.org/hg/jinja-main/archive/tip.tar.gz#egg=Jinja-dev
+# exceptions
+from jinja2.exceptions import TemplateError, UndefinedError, \
+ TemplateNotFound, TemplatesNotFound, TemplateSyntaxError, \
+ TemplateAssertionError
+# decorators and public utilities
+from jinja2.filters import environmentfilter, contextfilter, \
+ evalcontextfilter
+from jinja2.utils import Markup, escape, clear_caches, \
+ environmentfunction, evalcontextfunction, contextfunction, \
+ is_undefined
- :copyright: 2008 by Armin Ronacher.
- :license: BSD, see LICENSE for more details.
-"""
-from jinja2.environment import Environment
-from jinja2.loaders import BaseLoader, FileSystemLoader, PackageLoader, \
- DictLoader
-from jinja2.runtime import Undefined, DebugUndefined, StrictUndefined
-from jinja2.filters import environmentfilter, contextfilter
-from jinja2.utils import Markup, escape, contextfunction
+__all__ = [
+ 'Environment', 'Template', 'BaseLoader', 'FileSystemLoader',
+ 'PackageLoader', 'DictLoader', 'FunctionLoader', 'PrefixLoader',
+ 'ChoiceLoader', 'BytecodeCache', 'FileSystemBytecodeCache',
+ 'MemcachedBytecodeCache', 'Undefined', 'DebugUndefined',
+ 'StrictUndefined', 'TemplateError', 'UndefinedError', 'TemplateNotFound',
+ 'TemplatesNotFound', 'TemplateSyntaxError', 'TemplateAssertionError',
+ 'ModuleLoader', 'environmentfilter', 'contextfilter', 'Markup', 'escape',
+ 'environmentfunction', 'contextfunction', 'clear_caches', 'is_undefined',
+ 'evalcontextfilter', 'evalcontextfunction'
+]