124
124
hr_tag_re_from_tab_width ,
125
125
xml_escape_attr ,
126
126
xml_encode_email_char_at_random ,
127
+ html_escape_url ,
127
128
)
128
129
129
130
# ---- globals
@@ -1511,7 +1512,7 @@ def _do_links(self, text):
1511
1512
if is_img :
1512
1513
img_class_str = self ._html_class_str_from_tag ("img" )
1513
1514
result = '<img src="%s" alt="%s"%s%s%s' \
1514
- % (_html_escape_url (url , safe_mode = self .safe_mode ),
1515
+ % (html_escape_url (url , safe_mode = self .safe_mode ),
1515
1516
xml_escape_attr (_AMPERSAND_RE , link_text ),
1516
1517
title_str ,
1517
1518
img_class_str ,
@@ -1525,7 +1526,7 @@ def _do_links(self, text):
1525
1526
if self .safe_mode and not safe_link :
1526
1527
result_head = '<a href="#"%s>' % (title_str )
1527
1528
else :
1528
- result_head = '<a href="%s"%s>' % (_html_escape_url (url , safe_mode = self .safe_mode ), title_str )
1529
+ result_head = '<a href="%s"%s>' % (html_escape_url (url , safe_mode = self .safe_mode ), title_str )
1529
1530
result = '%s%s</a>' % (result_head , link_text )
1530
1531
if "smarty-pants" in self .extras :
1531
1532
result = result .replace ('"' , self ._escape_table ['"' ])
@@ -1567,7 +1568,7 @@ def _do_links(self, text):
1567
1568
if is_img :
1568
1569
img_class_str = self ._html_class_str_from_tag ("img" )
1569
1570
result = '<img src="%s" alt="%s"%s%s%s' \
1570
- % (_html_escape_url (url , safe_mode = self .safe_mode ),
1571
+ % (html_escape_url (url , safe_mode = self .safe_mode ),
1571
1572
xml_escape_attr (_AMPERSAND_RE , link_text ),
1572
1573
title_str ,
1573
1574
img_class_str ,
@@ -1580,7 +1581,7 @@ def _do_links(self, text):
1580
1581
if self .safe_mode and not self ._safe_protocols .match (url ):
1581
1582
result_head = '<a href="#"%s>' % (title_str )
1582
1583
else :
1583
- result_head = '<a href="%s"%s>' % (_html_escape_url (url , safe_mode = self .safe_mode ), title_str )
1584
+ result_head = '<a href="%s"%s>' % (html_escape_url (url , safe_mode = self .safe_mode ), title_str )
1584
1585
result = '%s%s</a>' % (result_head , link_text )
1585
1586
if "smarty-pants" in self .extras :
1586
1587
result = result .replace ('"' , self ._escape_table ['"' ])
@@ -2483,17 +2484,6 @@ class UnicodeWithAttrs(str):
2483
2484
toc_html = None
2484
2485
2485
2486
2486
- def _html_escape_url (attr , safe_mode = False ):
2487
- """Replace special characters that are potentially malicious in url string."""
2488
- escaped = (attr
2489
- .replace ('"' , '"' )
2490
- .replace ('<' , '<' )
2491
- .replace ('>' , '>' ))
2492
- if safe_mode :
2493
- escaped = escaped .replace ('+' , ' ' )
2494
- escaped = escaped .replace ("'" , "'" )
2495
- return escaped
2496
-
2497
2487
2498
2488
# ---- mainline
2499
2489
0 commit comments