diff options
| author | 2021-02-03 19:17:50 -0500 | |
|---|---|---|
| committer | 2021-02-03 19:17:50 -0500 | |
| commit | 475d074fd74425efbe783fad08f97f2df0c4909f (patch) | |
| tree | 2acdae53999b3c74b716efa4edb5b40311fa356a /nikola/plugins/template/jinja.py | |
| parent | cd502d52787f666fff3254d7d7e7578930c813c2 (diff) | |
| parent | 3a0d66f07b112b6d2bdc2b57bbf717a89a351ce6 (diff) | |
Update upstream source from tag 'upstream/8.1.2'
Update to upstream version '8.1.2'
with Debian dir e5e966a9e6010ef70618dc9a61558fa4db35aceb
Diffstat (limited to 'nikola/plugins/template/jinja.py')
| -rw-r--r-- | nikola/plugins/template/jinja.py | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/nikola/plugins/template/jinja.py b/nikola/plugins/template/jinja.py index 5a2135f..7795739 100644 --- a/nikola/plugins/template/jinja.py +++ b/nikola/plugins/template/jinja.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -# Copyright © 2012-2016 Roberto Alsina and others. +# Copyright © 2012-2020 Roberto Alsina and others. # Permission is hereby granted, free of charge, to any # person obtaining a copy of this software and associated @@ -24,21 +24,20 @@ # OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - """Jinja template handler.""" -from __future__ import unicode_literals -import os import io import json +import os + +from nikola.plugin_categories import TemplateSystem +from nikola.utils import makedirs, req_missing, sort_posts, _smartjoin_filter + try: import jinja2 from jinja2 import meta except ImportError: - jinja2 = None # NOQA - -from nikola.plugin_categories import TemplateSystem -from nikola.utils import makedirs, req_missing + jinja2 = None class JinjaTemplates(TemplateSystem): @@ -65,6 +64,8 @@ class JinjaTemplates(TemplateSystem): self.lookup.trim_blocks = True self.lookup.lstrip_blocks = True self.lookup.filters['tojson'] = json.dumps + self.lookup.filters['sort_posts'] = sort_posts + self.lookup.filters['smartjoin'] = _smartjoin_filter self.lookup.globals['enumerate'] = enumerate self.lookup.globals['isinstance'] = isinstance self.lookup.globals['tuple'] = tuple @@ -107,7 +108,7 @@ class JinjaTemplates(TemplateSystem): """Find dependencies for a template string.""" deps = set([]) ast = self.lookup.parse(text) - dep_names = meta.find_referenced_templates(ast) + dep_names = [d for d in meta.find_referenced_templates(ast) if d] for dep_name in dep_names: filename = self.lookup.loader.get_source(self.lookup, dep_name)[1] sub_deps = [filename] + self.get_deps(filename) @@ -117,7 +118,7 @@ class JinjaTemplates(TemplateSystem): def get_deps(self, filename): """Return paths to dependencies for the template loaded from filename.""" - with io.open(filename, 'r', encoding='utf-8') as fd: + with io.open(filename, 'r', encoding='utf-8-sig') as fd: text = fd.read() return self.get_string_deps(text) |
