You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					47 lines
				
				1.2 KiB
			
		
		
			
		
	
	
					47 lines
				
				1.2 KiB
			| 
								 
											8 years ago
										 
									 | 
							
								# -*- coding: utf-8 -*-
							 | 
						||
| 
								 | 
							
								"""
							 | 
						||
| 
								 | 
							
								    markupsafe._native
							 | 
						||
| 
								 | 
							
								    ~~~~~~~~~~~~~~~~~~
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    Native Python implementation the C module is not compiled.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    :copyright: (c) 2010 by Armin Ronacher.
							 | 
						||
| 
								 | 
							
								    :license: BSD, see LICENSE for more details.
							 | 
						||
| 
								 | 
							
								"""
							 | 
						||
| 
								 | 
							
								from markupsafe import Markup
							 | 
						||
| 
								 | 
							
								from markupsafe._compat import text_type
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								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(text_type(s)
							 | 
						||
| 
								 | 
							
								        .replace('&', '&')
							 | 
						||
| 
								 | 
							
								        .replace('>', '>')
							 | 
						||
| 
								 | 
							
								        .replace('<', '<')
							 | 
						||
| 
								 | 
							
								        .replace("'", ''')
							 | 
						||
| 
								 | 
							
								        .replace('"', '"')
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								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 not isinstance(s, text_type):
							 | 
						||
| 
								 | 
							
								        s = text_type(s)
							 | 
						||
| 
								 | 
							
								    return s
							 |