OLD | NEW |
1 # -*- coding: utf-8 -*- | 1 # -*- coding: utf-8 -*- |
2 """ | 2 """ |
3 markupsafe._native | 3 markupsafe._native |
4 ~~~~~~~~~~~~~~~~~~ | 4 ~~~~~~~~~~~~~~~~~~ |
5 | 5 |
6 Native Python implementation the C module is not compiled. | 6 Native Python implementation the C module is not compiled. |
7 | 7 |
8 :copyright: (c) 2010 by Armin Ronacher. | 8 :copyright: (c) 2010 by Armin Ronacher. |
9 :license: BSD, see LICENSE for more details. | 9 :license: BSD, see LICENSE for more details. |
10 """ | 10 """ |
11 from jinja2._markupsafe import Markup | 11 from markupsafe import Markup |
| 12 from markupsafe._compat import text_type |
12 | 13 |
13 | 14 |
14 def escape(s): | 15 def escape(s): |
15 """Convert the characters &, <, >, ' and " in string s to HTML-safe | 16 """Convert the characters &, <, >, ' and " in string s to HTML-safe |
16 sequences. Use this if you need to display text that might contain | 17 sequences. Use this if you need to display text that might contain |
17 such characters in HTML. Marks return value as markup string. | 18 such characters in HTML. Marks return value as markup string. |
18 """ | 19 """ |
19 if hasattr(s, '__html__'): | 20 if hasattr(s, '__html__'): |
20 return s.__html__() | 21 return s.__html__() |
21 return Markup(unicode(s) | 22 return Markup(text_type(s) |
22 .replace('&', '&') | 23 .replace('&', '&') |
23 .replace('>', '>') | 24 .replace('>', '>') |
24 .replace('<', '<') | 25 .replace('<', '<') |
25 .replace("'", ''') | 26 .replace("'", ''') |
26 .replace('"', '"') | 27 .replace('"', '"') |
27 ) | 28 ) |
28 | 29 |
29 | 30 |
30 def escape_silent(s): | 31 def escape_silent(s): |
31 """Like :func:`escape` but converts `None` into an empty | 32 """Like :func:`escape` but converts `None` into an empty |
32 markup string. | 33 markup string. |
33 """ | 34 """ |
34 if s is None: | 35 if s is None: |
35 return Markup() | 36 return Markup() |
36 return escape(s) | 37 return escape(s) |
37 | 38 |
38 | 39 |
39 def soft_unicode(s): | 40 def soft_unicode(s): |
40 """Make a string unicode if it isn't already. That way a markup | 41 """Make a string unicode if it isn't already. That way a markup |
41 string is not converted back to unicode. | 42 string is not converted back to unicode. |
42 """ | 43 """ |
43 if not isinstance(s, unicode): | 44 if not isinstance(s, text_type): |
44 s = unicode(s) | 45 s = text_type(s) |
45 return s | 46 return s |
OLD | NEW |