Show More
@@ -23,7 +23,7 b' import inspect' | |||
|
23 | 23 | from copy import deepcopy |
|
24 | 24 | |
|
25 | 25 | # other libs/dependencies |
|
26 | from jinja2 import Environment, FileSystemLoader | |
|
26 | from jinja2 import Environment, FileSystemLoader, ChoiceLoader | |
|
27 | 27 | |
|
28 | 28 | # IPython imports |
|
29 | 29 | from IPython.config.configurable import Configurable |
@@ -115,7 +115,7 b' class Exporter(Configurable):' | |||
|
115 | 115 | transformers = None |
|
116 | 116 | |
|
117 | 117 | |
|
118 | def __init__(self, transformers=None, filters=None, config=None, **kw): | |
|
118 | def __init__(self, transformers=None, filters=None, config=None, extra_loaders=None, **kw): | |
|
119 | 119 | """ |
|
120 | 120 | Public constructor |
|
121 | 121 | |
@@ -133,6 +133,9 b' class Exporter(Configurable):' | |||
|
133 | 133 | availlable default filters. |
|
134 | 134 | config : config |
|
135 | 135 | User configuration instance. |
|
136 | extra_loaders : list[of Jinja Loaders] | |
|
137 | ordered list of Jinja loder to find templates. Will be tried in order | |
|
138 | before the default FileSysteme ones. | |
|
136 | 139 | """ |
|
137 | 140 | |
|
138 | 141 | #Call the base class constructor |
@@ -143,7 +146,7 b' class Exporter(Configurable):' | |||
|
143 | 146 | super(Exporter, self).__init__(config=c, **kw) |
|
144 | 147 | |
|
145 | 148 | #Standard environment |
|
146 | self._init_environment() | |
|
149 | self._init_environment(extra_loaders=extra_loaders) | |
|
147 | 150 | |
|
148 | 151 | #Add transformers |
|
149 | 152 | self._register_transformers() |
@@ -283,16 +286,22 b' class Exporter(Configurable):' | |||
|
283 | 286 | self.register_filter(k, v) |
|
284 | 287 | |
|
285 | 288 | |
|
286 | def _init_environment(self): | |
|
289 | def _init_environment(self, extra_loaders=None): | |
|
287 | 290 | """ |
|
288 | 291 | Create the Jinja templating environment. |
|
289 | 292 | """ |
|
290 | 293 | here = os.path.dirname(os.path.realpath(__file__)) |
|
291 | self.environment = Environment( | |
|
292 | loader=FileSystemLoader([ | |
|
294 | loaders = [] | |
|
295 | if extra_loaders: | |
|
296 | loaders.extend(extra_loaders) | |
|
297 | ||
|
298 | loaders.append(FileSystemLoader([ | |
|
293 | 299 | os.path.join(here, self.template_path), |
|
294 | 300 | os.path.join(here, self.template_skeleton_path), |
|
295 |
]) |
|
|
301 | ])) | |
|
302 | ||
|
303 | self.environment = Environment( | |
|
304 | loader= ChoiceLoader(loaders), | |
|
296 | 305 | extensions=JINJA_EXTENSIONS |
|
297 | 306 | ) |
|
298 | 307 |
General Comments 0
You need to be logged in to leave comments.
Login now