diff options
author | Xie Shi <xieshi@douban.com> | 2013-03-21 12:08:49 +0800 |
---|---|---|
committer | Xie Shi <xieshi@douban.com> | 2013-03-21 12:08:49 +0800 |
commit | f4a2915a7adacfad36cb2aedfcfab3cc0fde0918 (patch) | |
tree | a11d10fef253f903f720c8f118d422505d5e58cd | |
parent | 779e1f330ee112500f862d5fdf056654abd48d37 (diff) | |
download | mako-f4a2915a7adacfad36cb2aedfcfab3cc0fde0918.tar.gz |
legacy_html_escape use string replace, which is faster than regex
-rw-r--r-- | mako/filters.py | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/mako/filters.py b/mako/filters.py index 428c926..b1ce924 100644 --- a/mako/filters.py +++ b/mako/filters.py @@ -24,12 +24,15 @@ xml_escapes = { # XXX: " is valid in HTML and XML # ' is not valid HTML, but is valid XML -LEGACY_HTML_ESCAPE_RE = re.compile(r'([&<"\'>])') - -def legacy_html_escape(string): +def legacy_html_escape(s): """legacy HTML escape for non-unicode mode.""" - - return LEGACY_HTML_ESCAPE_RE.sub(lambda m: xml_escapes[m.group()], string) + s = s.replace("&", "&") + s = s.replace(">", ">") + s = s.replace("<", "<") + s = s.replace('"', """) + s = s.replace("'", "'") + return s + try: import markupsafe |