Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Tree: 17af9b5a9d
Fetching contributors…

Cannot retrieve contributors at this time

48 lines (39 sloc) 1.18 KB
# -*- coding: utf-8 -*-
Native Python implementation the C module is not compiled.
:copyright: (c) 2010 by Armin Ronacher.
:license: BSD, see LICENSE for more details.
from jinja2._markupsafe import Markup
def escape(s):
"""Convert the characters &, <, >, ' and " in string s to HTML-safe
sequences. Use this if you need to display text that might contain
such characters in HTML. Marks return value as markup string.
if hasattr(s, '__html__'):
return s.__html__()
return Markup(unicode(s)
.replace('&', '&amp;')
.replace('>', '&gt;')
.replace('<', '&lt;')
.replace("'", '&#39;')
.replace('"', '&#34;')
def escape_silent(s):
"""Like :func:`escape` but converts `None` into an empty
markup string.
if s is None:
return Markup()
return escape(s)
def soft_unicode(s):
"""Make a string unicode if it isn't already. That way a markup
string is not converted back to unicode.
if isinstance(s, str):
s = s.decode('utf-8')
if not isinstance(s, unicode):
s = unicode(s)
return s
Jump to Line
Something went wrong with that request. Please try again.