summaryrefslogtreecommitdiffstats
path: root/nikola/plugins/template_jinja.py
diff options
context:
space:
mode:
authorLibravatarAgustin Henze <tin@sluc.org.ar>2013-02-13 18:35:39 -0300
committerLibravatarAgustin Henze <tin@sluc.org.ar>2013-02-13 18:35:39 -0300
commita40930043121a4b60de8526d58417761a54ab718 (patch)
tree383c5cf8e320761ee942619282fe51be625179a7 /nikola/plugins/template_jinja.py
parent9c5708cc92af894e414bc76ee35ec2230de5d288 (diff)
Imported Upstream version 5.2upstream/5.2
Diffstat (limited to 'nikola/plugins/template_jinja.py')
-rw-r--r--nikola/plugins/template_jinja.py26
1 files changed, 17 insertions, 9 deletions
diff --git a/nikola/plugins/template_jinja.py b/nikola/plugins/template_jinja.py
index f88b2c0..b6d762b 100644
--- a/nikola/plugins/template_jinja.py
+++ b/nikola/plugins/template_jinja.py
@@ -8,11 +8,11 @@
# distribute, sublicense, and/or sell copies of the
# Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
-#
+#
# The above copyright notice and this permission notice
# shall be included in all copies or substantial portions of
# the Software.
-#
+#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
@@ -25,10 +25,11 @@
"""Jinja template handlers"""
import os
+import json
try:
import jinja2
except ImportError:
- jinja2 = None
+ jinja2 = None # NOQA
from nikola.plugin_categories import TemplateSystem
@@ -39,19 +40,26 @@ class JinjaTemplates(TemplateSystem):
name = "jinja"
lookup = None
+ def __init__(self):
+ """ initialize Jinja2 wrapper with extended set of filters"""
+ if jinja2 is None:
+ return
+ self.lookup = jinja2.Environment()
+ self.lookup.filters['tojson'] = json.dumps
+
def set_directories(self, directories, cache_folder):
"""Createa template lookup."""
if jinja2 is None:
- raise Exception('To use this theme you need to install the "Jinja2" package.')
- self.lookup = jinja2.Environment(loader=jinja2.FileSystemLoader(
- directories,
- encoding='utf-8',
- ))
+ raise Exception('To use this theme you need to install the '
+ '"Jinja2" package.')
+ self.lookup.loader = jinja2.FileSystemLoader(directories,
+ encoding='utf-8')
def render_template(self, template_name, output_name, context):
"""Render the template into output_name using context."""
if jinja2 is None:
- raise Exception('To use this theme you need to install the "Jinja2" package.')
+ raise Exception('To use this theme you need to install the '
+ '"Jinja2" package.')
template = self.lookup.get_template(template_name)
output = template.render(**context)
if output_name is not None: