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