2010-10-15 12:57:45 -03:00
|
|
|
"""
|
|
|
|
General functions for HTML manipulation.
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
|
|
_escape_map = {ord('&'): '&', ord('<'): '<', ord('>'): '>'}
|
|
|
|
_escape_map_full = {ord('&'): '&', ord('<'): '<', ord('>'): '>',
|
|
|
|
ord('"'): '"', ord('\''): '''}
|
|
|
|
|
|
|
|
# NB: this is a candidate for a bytes/string polymorphic interface
|
|
|
|
|
|
|
|
def escape(s, quote=True):
|
|
|
|
"""
|
|
|
|
Replace special characters "&", "<" and ">" to HTML-safe sequences.
|
|
|
|
If the optional flag quote is true (the default), the quotation mark
|
|
|
|
character (") is also translated.
|
|
|
|
"""
|
|
|
|
if quote:
|
|
|
|
return s.translate(_escape_map_full)
|
|
|
|
return s.translate(_escape_map)
|