Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A Python module that implements the jinja2.Markup string

tag: 0.9

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 markupsafe
Octocat-spinner-32 .gitignore
Octocat-spinner-32 AUTHORS Found the missing author :)
Octocat-spinner-32 LICENSE Added copyright entry for Georg, but there are surely more involved
Octocat-spinner-32 MANIFEST.in Renamed readme
Octocat-spinner-32 README.rst
Octocat-spinner-32 setup.py
README.rst

MarkupSafe

Implements a unicode subclass that supports HTML strings:

>>> from markupsafe import Markup, escape
>>> escape("<script>alert(document.cookie);</script>")
Markup(u'&lt;script&gt;alert(document.cookie);&lt;/script&gt;')
>>> tmpl = Markup("<em>%s</em>")
>>> tmpl % "Peter > Lustig"
Markup(u'<em>Peter &gt; Lustig</em>')

If you want to make an object unicode that is not yet unicode but don't want to lose the taint information, you can use the soft_unicode function:

>>> from markupsafe import soft_unicode
>>> soft_unicode(42)
u'42'
>>> soft_unicode(Markup('foo'))
Markup(u'foo')

Objects can customize their HTML markup equivalent by overriding the __html__ function:

>>> class Foo(object):
...  def __html__(self):
...   return '<strong>Nice</strong>'
...
>>> escape(Foo())
Markup(u'<strong>Nice</strong>')
>>> Markup(Foo())
Markup(u'<strong>Nice</strong>')
Something went wrong with that request. Please try again.