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