summaryrefslogtreecommitdiffstats
path: root/Lib/html/__init__.py
blob: 335d2148288fc15f8f24ce1d53387da772e2c452 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
"""
General functions for HTML manipulation.
"""


_escape_map = {ord('&'): '&amp;', ord('<'): '&lt;', ord('>'): '&gt;'}
_escape_map_full = {ord('&'): '&amp;', ord('<'): '&lt;', ord('>'): '&gt;',
                    ord('"'): '&quot;', ord('\''): '&#x27;'}

# 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)