diff options
| author | Devin Fee <devin.fee@gmail.com> | 2012-04-13 17:12:43 -0700 |
|---|---|---|
| committer | Takahiro Fujiwara <wutali.no@gmail.com> | 2013-02-18 23:37:09 +0900 |
| commit | db388f453e3b4fe018fc3403722ff5ce50579080 (patch) | |
| tree | 9703efca5875f6e4a53fcf997df6f81c22d789b4 | |
| parent | 8c952d940272d883169973833ca215ac3248e94e (diff) | |
| download | pyramid-db388f453e3b4fe018fc3403722ff5ce50579080.tar.gz pyramid-db388f453e3b4fe018fc3403722ff5ce50579080.tar.bz2 pyramid-db388f453e3b4fe018fc3403722ff5ce50579080.zip | |
escaped double quotes are now unescaped
| -rw-r--r-- | pyramid/scaffolds/template.py | 11 |
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 |
