@@ -82,8 +82,6 @@ def get_template_dirs():
82
82
return template_dirs
83
83
84
84
85
-
86
-
87
85
def get_pattern_config_str (template_name ):
88
86
replace_pattern = "{}$" .format (get_pattern_template_suffix ())
89
87
context_path = re .sub (replace_pattern , "" , template_name )
@@ -162,13 +160,12 @@ def render_pattern(request, template_name, allow_non_patterns=False, config=None
162
160
163
161
164
162
def get_renderer ():
165
- return JinjaTemplateRenderer
163
+ return TemplateRenderer
166
164
167
165
168
166
class TemplateRenderer :
169
-
170
167
@classmethod
171
- def get_pattern_templates (cls , ):
168
+ def get_pattern_templates (cls ):
172
169
templates = base_dict ()
173
170
template_dirs = get_template_dirs ()
174
171
@@ -239,13 +236,28 @@ def get_pattern_templates(cls,):
239
236
240
237
return templates
241
238
242
- class DTLTemplateRenderer (TemplateRenderer ):
243
239
@classmethod
244
240
def get_pattern_source (cls , template ):
245
- return escape (template . template . source )
241
+ return cls . _get_engine (template ). get_pattern_source ( template )
246
242
247
243
@classmethod
248
- def get_template_ancestors (cls , template_name , context = None , ancestors = None ):
244
+ def get_template_ancestors (cls , template_name , context = None ):
245
+ template = get_template (template_name )
246
+ return cls ._get_engine (template ).get_template_ancestors (template_name , context = context )
247
+
248
+ @classmethod
249
+ def _get_engine (cls , template ):
250
+ if "jinja" in str (type (template )).lower ():
251
+ return JinjaTemplateRenderer
252
+ return DTLTemplateRenderer
253
+
254
+ class DTLTemplateRenderer :
255
+ @staticmethod
256
+ def get_pattern_source (template ):
257
+ return escape (template .template .source )
258
+
259
+ @staticmethod
260
+ def get_template_ancestors (template_name , context = None , ancestors = None ):
249
261
"""
250
262
Returns a list of template names, starting with provided name
251
263
and followed by the names of any templates that extends until
@@ -271,18 +283,15 @@ def get_template_ancestors(cls, template_name, context=None, ancestors=None):
271
283
return ancestors
272
284
273
285
274
-
275
- class JinjaTemplateRenderer (TemplateRenderer ):
276
-
277
- @classmethod
278
- def get_pattern_source (cls , template ):
286
+ class JinjaTemplateRenderer :
287
+ @staticmethod
288
+ def get_pattern_source (template ):
279
289
with open (template .template .filename ) as f :
280
290
source = escape (f .read ())
281
291
return source
282
292
283
-
284
- @classmethod
285
- def get_template_ancestors (cls , template_name , context = None , ancestors = None ):
293
+ @staticmethod
294
+ def get_template_ancestors (template_name , context = None , ancestors = None ):
286
295
"""
287
296
Returns a list of template names, starting with provided name
288
297
and followed by the names of any templates that extends until
@@ -306,4 +315,3 @@ def get_template_ancestors(cls, template_name, context=None, ancestors=None):
306
315
cls .get_template_ancestors (parent_template_name , context = context , ancestors = ancestors )
307
316
308
317
return ancestors
309
- > >> >> >> 68 fea3c (First pass at renderers )
0 commit comments