Skip to content

Commit 2a56b90

Browse files
committed
Move html_escape_url to utils
1 parent 723a1f0 commit 2a56b90

File tree

2 files changed

+17
-15
lines changed

2 files changed

+17
-15
lines changed

lib/markdown2.py

+5-15
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@
124124
hr_tag_re_from_tab_width,
125125
xml_escape_attr,
126126
xml_encode_email_char_at_random,
127+
html_escape_url,
127128
)
128129

129130
# ---- globals
@@ -1511,7 +1512,7 @@ def _do_links(self, text):
15111512
if is_img:
15121513
img_class_str = self._html_class_str_from_tag("img")
15131514
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),
15151516
xml_escape_attr(_AMPERSAND_RE, link_text),
15161517
title_str,
15171518
img_class_str,
@@ -1525,7 +1526,7 @@ def _do_links(self, text):
15251526
if self.safe_mode and not safe_link:
15261527
result_head = '<a href="#"%s>' % (title_str)
15271528
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)
15291530
result = '%s%s</a>' % (result_head, link_text)
15301531
if "smarty-pants" in self.extras:
15311532
result = result.replace('"', self._escape_table['"'])
@@ -1567,7 +1568,7 @@ def _do_links(self, text):
15671568
if is_img:
15681569
img_class_str = self._html_class_str_from_tag("img")
15691570
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),
15711572
xml_escape_attr(_AMPERSAND_RE, link_text),
15721573
title_str,
15731574
img_class_str,
@@ -1580,7 +1581,7 @@ def _do_links(self, text):
15801581
if self.safe_mode and not self._safe_protocols.match(url):
15811582
result_head = '<a href="#"%s>' % (title_str)
15821583
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)
15841585
result = '%s%s</a>' % (result_head, link_text)
15851586
if "smarty-pants" in self.extras:
15861587
result = result.replace('"', self._escape_table['"'])
@@ -2483,17 +2484,6 @@ class UnicodeWithAttrs(str):
24832484
toc_html = None
24842485

24852486

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('"', '&quot;')
2490-
.replace('<', '&lt;')
2491-
.replace('>', '&gt;'))
2492-
if safe_mode:
2493-
escaped = escaped.replace('+', ' ')
2494-
escaped = escaped.replace("'", "&#39;")
2495-
return escaped
2496-
24972487

24982488
# ---- mainline
24992489

lib/utils.py

+12
Original file line numberDiff line numberDiff line change
@@ -307,3 +307,15 @@ def xml_encode_email_char_at_random(ch):
307307
return "&#%s;" % hex(ord(ch))[1:]
308308
else:
309309
return "&#%s;" % ord(ch)
310+
311+
312+
def html_escape_url(attr, safe_mode=False):
313+
"""Replace special characters that are potentially malicious in url string."""
314+
escaped = (attr
315+
.replace('"', '&quot;')
316+
.replace('<', '&lt;')
317+
.replace('>', '&gt;'))
318+
if safe_mode:
319+
escaped = escaped.replace('+', ' ')
320+
escaped = escaped.replace("'", "&#39;")
321+
return escaped

0 commit comments

Comments
 (0)