""" Utilities for use in Mako markup. """ import markupsafe # Text() can be used to declare a string as plain text, as HTML() is used # for HTML. It simply wraps markupsafe's escape, which will HTML-escape if # it isn't already escaped. Text = markupsafe.escape # pylint: disable=invalid-name def HTML(html): # pylint: disable=invalid-name """ Mark a string as already HTML, so that it won't be escaped before output. Use this function when formatting HTML into other strings. It must be used in conjunction with ``Text()``, and both ``HTML()`` and ``Text()`` must be closed before any calls to ``format()``:: <%page expression_filter="h"/> <%! from django.utils.translation import ugettext as _ from openedx.core.djangolib.markup import HTML, Text %> ${Text(_("Write & send {start}email{end}")).format( start=HTML("<a href='mailto:{}'>").format(user.email), end=HTML("</a>"), )} """ return markupsafe.Markup(html)