removed duplicate function local_html_escape
This commit is contained in:
+7
-7
@@ -7,8 +7,8 @@
|
|||||||
| License: LGPLv3 (http://www.gnu.org/licenses/lgpl.html)
|
| License: LGPLv3 (http://www.gnu.org/licenses/lgpl.html)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from gluon._compat import xrange
|
from pydal._compat import xrange
|
||||||
from gluon.utils import local_html_escape
|
from yatl.sanitizer import xmlescape
|
||||||
import re
|
import re
|
||||||
|
|
||||||
__all__ = ['highlight']
|
__all__ = ['highlight']
|
||||||
@@ -63,7 +63,7 @@ class Highlighter(object):
|
|||||||
Callback for C specific highlighting.
|
Callback for C specific highlighting.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
value = local_html_escape(match.group(), quote=False)
|
value = xmlescape(match.group(), quote=False)
|
||||||
self.change_style(token, style)
|
self.change_style(token, style)
|
||||||
self.output.append(value)
|
self.output.append(value)
|
||||||
|
|
||||||
@@ -77,7 +77,7 @@ class Highlighter(object):
|
|||||||
Callback for python specific highlighting.
|
Callback for python specific highlighting.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
value = local_html_escape(match.group(), quote=False)
|
value = xmlescape(match.group(), quote=False)
|
||||||
if token == 'MULTILINESTRING':
|
if token == 'MULTILINESTRING':
|
||||||
self.change_style(token, style)
|
self.change_style(token, style)
|
||||||
self.output.append(value)
|
self.output.append(value)
|
||||||
@@ -114,7 +114,7 @@ class Highlighter(object):
|
|||||||
Callback for HTML specific highlighting.
|
Callback for HTML specific highlighting.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
value = local_html_escape(match.group(), quote=False)
|
value = xmlespace(match.group(), quote=False)
|
||||||
self.change_style(token, style)
|
self.change_style(token, style)
|
||||||
self.output.append(value)
|
self.output.append(value)
|
||||||
if token == 'GOTOPYTHON':
|
if token == 'GOTOPYTHON':
|
||||||
@@ -286,13 +286,13 @@ color: #A0A0A0;
|
|||||||
'WEB2PY']:
|
'WEB2PY']:
|
||||||
code = Highlighter(language, link, styles).highlight(code)
|
code = Highlighter(language, link, styles).highlight(code)
|
||||||
else:
|
else:
|
||||||
code = local_html_escape(code, quote=False)
|
code = xmlespace(code, quote=False)
|
||||||
lines = code.split('\n')
|
lines = code.split('\n')
|
||||||
|
|
||||||
if counter is None:
|
if counter is None:
|
||||||
linenumbers = [''] * len(lines)
|
linenumbers = [''] * len(lines)
|
||||||
elif isinstance(counter, str):
|
elif isinstance(counter, str):
|
||||||
linenumbers = [local_html_escape(counter, quote=False)] * len(lines)
|
linenumbers = [xmlespace(counter, quote=False)] * len(lines)
|
||||||
else:
|
else:
|
||||||
linenumbers = [str(i + counter) + '.' for i in
|
linenumbers = [str(i + counter) + '.' for i in
|
||||||
xrange(len(lines))]
|
xrange(len(lines))]
|
||||||
|
|||||||
+5
-3
@@ -17,18 +17,20 @@ import copy
|
|||||||
import types
|
import types
|
||||||
import urllib
|
import urllib
|
||||||
import base64
|
import base64
|
||||||
from gluon import sanitizer, decoder
|
|
||||||
import itertools
|
import itertools
|
||||||
from gluon._compat import reduce, pickle, copyreg, HTMLParser, name2codepoint, iteritems, unichr, unicodeT, \
|
from pydal._compat import reduce, pickle, copyreg, HTMLParser, name2codepoint, iteritems, unichr, unicodeT, \
|
||||||
urllib_quote, to_bytes, to_native, to_unicode, basestring, urlencode, implements_bool, text_type, long
|
urllib_quote, to_bytes, to_native, to_unicode, basestring, urlencode, implements_bool, text_type, long
|
||||||
from gluon.utils import local_html_escape
|
from yatl import sanitizer
|
||||||
import marshal
|
import marshal
|
||||||
|
|
||||||
|
from gluon import decoder
|
||||||
from gluon.storage import Storage
|
from gluon.storage import Storage
|
||||||
from gluon.utils import web2py_uuid, simple_hash, compare
|
from gluon.utils import web2py_uuid, simple_hash, compare
|
||||||
from gluon.highlight import highlight
|
from gluon.highlight import highlight
|
||||||
|
|
||||||
|
|
||||||
|
local_html_escape = lambda text, quote=False: sanitizer.xmlescape(text, quote, colon=False)
|
||||||
|
|
||||||
regex_crlf = re.compile('\r|\n')
|
regex_crlf = re.compile('\r|\n')
|
||||||
|
|
||||||
join = ''.join
|
join = ''.join
|
||||||
|
|||||||
+4
-5
@@ -19,12 +19,11 @@ import logging
|
|||||||
from cgi import escape
|
from cgi import escape
|
||||||
from threading import RLock
|
from threading import RLock
|
||||||
|
|
||||||
from gluon.utils import local_html_escape
|
from pydal._compat import copyreg, PY2, maketrans, iterkeys, unicodeT, to_unicode, to_bytes, iteritems, to_native, pjoin
|
||||||
|
|
||||||
from gluon._compat import copyreg, PY2, maketrans, iterkeys, unicodeT, to_unicode, to_bytes, iteritems, to_native, pjoin
|
|
||||||
|
|
||||||
from pydal.contrib.portalocker import read_locked, LockedFile
|
from pydal.contrib.portalocker import read_locked, LockedFile
|
||||||
|
|
||||||
|
from yatl.sanitizer import xmlescape
|
||||||
|
|
||||||
from gluon.fileutils import listdir
|
from gluon.fileutils import listdir
|
||||||
from gluon.cfs import getcfs
|
from gluon.cfs import getcfs
|
||||||
from gluon.html import XML, xmlescape
|
from gluon.html import XML, xmlescape
|
||||||
@@ -428,7 +427,7 @@ class lazyT(object):
|
|||||||
return len(str(self))
|
return len(str(self))
|
||||||
|
|
||||||
def xml(self):
|
def xml(self):
|
||||||
return str(self) if self.M else local_html_escape(str(self), quote=False)
|
return str(self) if self.M else xmlescape(str(self), quote=False)
|
||||||
|
|
||||||
def encode(self, *a, **b):
|
def encode(self, *a, **b):
|
||||||
if PY2 and a[0] != 'utf8':
|
if PY2 and a[0] != 'utf8':
|
||||||
|
|||||||
@@ -439,31 +439,6 @@ def getipaddrinfo(host):
|
|||||||
return []
|
return []
|
||||||
|
|
||||||
|
|
||||||
def local_html_escape(data, quote=False):
|
|
||||||
"""
|
|
||||||
Works with bytes.
|
|
||||||
Replace special characters "&", "<" and ">" to HTML-safe sequences.
|
|
||||||
If the optional flag quote is true (the default), the quotation mark
|
|
||||||
characters, both double quote (") and single quote (') characters are also
|
|
||||||
translated.
|
|
||||||
"""
|
|
||||||
if PY2:
|
|
||||||
import cgi
|
|
||||||
data = cgi.escape(data, quote)
|
|
||||||
return data.replace("'", "'") if quote else data
|
|
||||||
else:
|
|
||||||
import html
|
|
||||||
if isinstance(data, str):
|
|
||||||
return html.escape(data, quote=quote)
|
|
||||||
data = data.replace(b"&", b"&") # Must be done first!
|
|
||||||
data = data.replace(b"<", b"<")
|
|
||||||
data = data.replace(b">", b">")
|
|
||||||
if quote:
|
|
||||||
data = data.replace(b'"', b""")
|
|
||||||
data = data.replace(b'\'', b"'")
|
|
||||||
return data
|
|
||||||
|
|
||||||
|
|
||||||
def unlocalised_http_header_date(data):
|
def unlocalised_http_header_date(data):
|
||||||
"""
|
"""
|
||||||
Converts input datetime to format defined by RFC 7231, section 7.1.1.1
|
Converts input datetime to format defined by RFC 7231, section 7.1.1.1
|
||||||
|
|||||||
Reference in New Issue
Block a user