##// END OF EJS Templates
Allow custom nbconvert template loaders...
Matthias BUSSONNIER -
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