1
0
mirror of https://github.com/webrecorder/pywb.git synced 2025-03-24 06:59:52 +01:00

jinaj2 replay: use ChoiceLoader to properly load either local file

system or package templates
This commit is contained in:
Ilya Kreymer 2014-10-16 20:33:17 -07:00
parent aecc847ec1
commit 614938479b

View File

@ -7,7 +7,8 @@ import logging
from os import path from os import path
from itertools import imap from itertools import imap
from jinja2 import Environment, FileSystemLoader, PackageLoader from jinja2 import Environment
from jinja2 import FileSystemLoader, PackageLoader, ChoiceLoader
FILTERS = {} FILTERS = {}
@ -77,11 +78,10 @@ class J2TemplateView(object):
self.jinja_env = self.make_jinja_env(template_dir) self.jinja_env = self.make_jinja_env(template_dir)
def make_jinja_env(self, template_dir): def make_jinja_env(self, template_dir):
if template_dir.startswith('.') or template_dir.startswith('file://'): filesys_loader = FileSystemLoader(template_dir)
loader = FileSystemLoader(template_dir) pkg_loader = PackageLoader(self.env_globals['package'], template_dir)
else: loader = ChoiceLoader([filesys_loader, pkg_loader])
loader = PackageLoader(self.env_globals['package'], template_dir)
jinja_env = Environment(loader=loader, trim_blocks=True) jinja_env = Environment(loader=loader, trim_blocks=True)
jinja_env.filters.update(FILTERS) jinja_env.filters.update(FILTERS)
jinja_env.globals.update(self.env_globals) jinja_env.globals.update(self.env_globals)