Django documentation

django.contrib.markup

Deprecated in Django 1.5:

Deprecated since version 1.5: This module has been deprecated.

Django provides template filters that implement the following markup languages:

In each case, the filter expects formatted markup as a string and returns a string representing the marked-up text. For example, the textile filter converts text that is marked-up in Textile format to HTML.

To activate these filters, add 'django.contrib.markup' to your INSTALLED_APPS setting. Once you’ve done that, use {% load markup %} in a template, and you’ll have access to these filters. For more documentation, read the source code in django/contrib/markup/templatetags/markup.py.

Warning

The output of markup filters is marked “safe” and will not be escaped when rendered in a template. Always be careful to sanitize your inputs and make sure you are not leaving yourself vulnerable to cross-site scripting or other types of attacks.

reStructured Text

When using the restructuredtext markup filter you can define a RESTRUCTUREDTEXT_FILTER_SETTINGS in your django settings to override the default writer settings. See the restructuredtext writer settings for details on what these settings are.

Warning

reStructured Text has features that allow raw HTML to be included, and that allow arbitrary files to be included. These can lead to XSS vulnerabilities and leaking of private information. It is your responsibility to check the features of this library and configure appropriately to avoid this. See the Deploying Docutils Securely documentation.

Markdown

The Python Markdown library supports options named “safe_mode” and “enable_attributes”. Both relate to the security of the output. To enable both options in tandem, the markdown filter supports the “safe” argument:

{{ markdown_content_var|markdown:"safe" }}

Warning

Versions of the Python-Markdown library prior to 2.1 do not support the optional disabling of attributes. This is a security flaw. Therefore, django.contrib.markup has dropped support for versions of Python-Markdown < 2.1 in Django 1.5.

Questions/Feedback

Having trouble? We'd like to help!