diff markup/template.py @ 191:929ef2913b87

Allow leading whitespace in expressions. Closes #38. Thanks to Christian Boos for the patch!
author cmlenz
date Wed, 23 Aug 2006 15:00:28 +0000
parents f0b32f1c478c
children cda3bdfc19ed
line wrap: on
line diff
--- a/markup/template.py
+++ b/markup/template.py
@@ -853,27 +853,27 @@
         """
         def _interpolate(text, patterns, filename=filename, lineno=lineno,
                          offset=offset):
-            for idx, group in enumerate(patterns.pop(0).split(text)):
+            for idx, grp in enumerate(patterns.pop(0).split(text)):
                 if idx % 2:
                     try:
-                        yield EXPR, Expression(group, filename, lineno), \
+                        yield EXPR, Expression(grp.strip(), filename, lineno), \
                               (filename, lineno, offset)
                     except SyntaxError, err:
                         raise TemplateSyntaxError(err, filename, lineno,
                                                   offset + (err.offset or 0))
-                elif group:
+                elif grp:
                     if patterns:
-                        for result in _interpolate(group, patterns[:]):
+                        for result in _interpolate(grp, patterns[:]):
                             yield result
                     else:
-                        yield TEXT, group.replace('$$', '$'), \
+                        yield TEXT, grp.replace('$$', '$'), \
                               (filename, lineno, offset)
-                if '\n' in group:
-                    lines = group.splitlines()
+                if '\n' in grp:
+                    lines = grp.splitlines()
                     lineno += len(lines) - 1
                     offset += len(lines[-1])
                 else:
-                    offset += len(group)
+                    offset += len(grp)
         return _interpolate(text, [cls._FULL_EXPR_RE, cls._SHORT_EXPR_RE])
     _interpolate = classmethod(_interpolate)
 
Copyright (C) 2012-2017 Edgewall Software