diff options
| author | 2013-02-13 18:35:39 -0300 | |
|---|---|---|
| committer | 2013-02-13 18:35:39 -0300 | |
| commit | a40930043121a4b60de8526d58417761a54ab718 (patch) | |
| tree | 383c5cf8e320761ee942619282fe51be625179a7 /nikola/plugins/template_jinja.py | |
| parent | 9c5708cc92af894e414bc76ee35ec2230de5d288 (diff) | |
Imported Upstream version 5.2upstream/5.2
Diffstat (limited to 'nikola/plugins/template_jinja.py')
| -rw-r--r-- | nikola/plugins/template_jinja.py | 26 |
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: |
