summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDevin Fee <devin.fee@gmail.com>2012-04-13 17:12:43 -0700
committerTakahiro Fujiwara <wutali.no@gmail.com>2013-02-18 23:37:09 +0900
commitdb388f453e3b4fe018fc3403722ff5ce50579080 (patch)
tree9703efca5875f6e4a53fcf997df6f81c22d789b4
parent8c952d940272d883169973833ca215ac3248e94e (diff)
downloadpyramid-db388f453e3b4fe018fc3403722ff5ce50579080.tar.gz
pyramid-db388f453e3b4fe018fc3403722ff5ce50579080.tar.bz2
pyramid-db388f453e3b4fe018fc3403722ff5ce50579080.zip
escaped double quotes are now unescaped
-rw-r--r--pyramid/scaffolds/template.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/pyramid/scaffolds/template.py b/pyramid/scaffolds/template.py
index 39d0e4b3f..b587adb73 100644
--- a/pyramid/scaffolds/template.py
+++ b/pyramid/scaffolds/template.py
@@ -35,7 +35,8 @@ class Template(object):
content = native_(content, fsenc)
try:
return bytes_(
- substitute_double_braces(content, TypeMapper(vars)), fsenc)
+ substitute_escaped_double_braces(
+ substitute_double_braces(content, TypeMapper(vars))), fsenc)
except Exception as e:
_add_except(e, ' in file %s' % filename)
raise
@@ -149,6 +150,14 @@ def substitute_double_braces(content, values):
return values[value]
return double_brace_pattern.sub(double_bracerepl, content)
+escaped_double_brace_pattern = re.compile(r'\\{\\{(?P<escape_braced>.*?)\\}\\}')
+
+def substitute_escaped_double_braces(content):
+ def escaped_double_bracerepl(match):
+ value = match.group('escape_braced').strip()
+ return "{{%(value)s}}" % locals()
+ return escaped_double_brace_pattern.sub(escaped_double_bracerepl, content)
+
def _add_except(exc, info): # pragma: no cover
if not hasattr(exc, 'args') or exc.args is None:
return