Warning
This document is for an old release of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.
Source code for tool_shed.util.web_util
from markupsafe import escape as raw_escape
from galaxy.util import smart_str
ALLOWED_ELEMENTS = ["<b>", "</b>", "<br/>"]
ALLOWED_MAP = dict((x, raw_escape(x)) for x in ALLOWED_ELEMENTS)
[docs]def escape(string):
""" A tool shed variant of markupsafe.escape that allows a select few
HTML elements that are repeatedly used in messages created deep
in the toolshed components. Ideally abstract things would be produced
in these components and messages in the views or client side - this is
what should be worked toward - but for now - we have this hack.
>>> escape("A <b>repo</b>")
u'A <b>repo</b>'
"""
escaped = smart_str(raw_escape(string), encoding="ascii", errors="replace")
# Unescape few selected tags.
for key, value in ALLOWED_MAP.items():
escaped = escaped.replace(value, key)
return escaped