summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorAymeric Augustin <aymeric.augustin@m4x.org>2012-12-24 23:14:06 +0100
committerAymeric Augustin <aymeric.augustin@m4x.org>2012-12-29 21:59:07 +0100
commitebd25985962bd1466257385abcf7e8fc0df9ca0f (patch)
treec0a1b2e4e139e44da86f946350f6a7e426bcbc97 /django
parentf27a4ee3270bd57299ce02d622978ac4d839137e (diff)
Removed django.contrib.markup.
Diffstat (limited to 'django')
-rw-r--r--django/contrib/markup/__init__.py0
-rw-r--r--django/contrib/markup/models.py0
-rw-r--r--django/contrib/markup/templatetags/__init__.py0
-rw-r--r--django/contrib/markup/templatetags/markup.py90
-rw-r--r--django/contrib/markup/tests.py108
5 files changed, 0 insertions, 198 deletions
diff --git a/django/contrib/markup/__init__.py b/django/contrib/markup/__init__.py
deleted file mode 100644
index e69de29bb2..0000000000
--- a/django/contrib/markup/__init__.py
+++ /dev/null
diff --git a/django/contrib/markup/models.py b/django/contrib/markup/models.py
deleted file mode 100644
index e69de29bb2..0000000000
--- a/django/contrib/markup/models.py
+++ /dev/null
diff --git a/django/contrib/markup/templatetags/__init__.py b/django/contrib/markup/templatetags/__init__.py
deleted file mode 100644
index e69de29bb2..0000000000
--- a/django/contrib/markup/templatetags/__init__.py
+++ /dev/null
diff --git a/django/contrib/markup/templatetags/markup.py b/django/contrib/markup/templatetags/markup.py
deleted file mode 100644
index 389c919c07..0000000000
--- a/django/contrib/markup/templatetags/markup.py
+++ /dev/null
@@ -1,90 +0,0 @@
-"""
-Set of "markup" template filters for Django. These filters transform plain text
-markup syntaxes to HTML; currently there is support for:
-
- * Textile, which requires the PyTextile library available at
- http://loopcore.com/python-textile/
-
- * Markdown, which requires the Python-markdown library from
- http://www.freewisdom.org/projects/python-markdown
-
- * reStructuredText, which requires docutils from http://docutils.sf.net/
-"""
-
-from django import template
-from django.conf import settings
-from django.utils.encoding import force_bytes, force_text
-from django.utils.safestring import mark_safe
-
-register = template.Library()
-
-@register.filter(is_safe=True)
-def textile(value):
- try:
- import textile
- except ImportError:
- if settings.DEBUG:
- raise template.TemplateSyntaxError("Error in 'textile' filter: The Python textile library isn't installed.")
- return force_text(value)
- else:
- return mark_safe(force_text(textile.textile(force_bytes(value), encoding='utf-8', output='utf-8')))
-
-@register.filter(is_safe=True)
-def markdown(value, arg=''):
- """
- Runs Markdown over a given value, optionally using various
- extensions python-markdown supports.
-
- Syntax::
-
- {{ value|markdown:"extension1_name,extension2_name..." }}
-
- To enable safe mode, which strips raw HTML and only returns HTML
- generated by actual Markdown syntax, pass "safe" as the first
- extension in the list.
-
- If the version of Markdown in use does not support extensions,
- they will be silently ignored.
-
- """
- import warnings
- warnings.warn('The markdown filter has been deprecated',
- category=DeprecationWarning)
- try:
- import markdown
- except ImportError:
- if settings.DEBUG:
- raise template.TemplateSyntaxError("Error in 'markdown' filter: The Python markdown library isn't installed.")
- return force_text(value)
- else:
- markdown_vers = getattr(markdown, "version_info", 0)
- if markdown_vers < (2, 1):
- if settings.DEBUG:
- raise template.TemplateSyntaxError(
- "Error in 'markdown' filter: Django does not support versions of the Python markdown library < 2.1.")
- return force_text(value)
- else:
- extensions = [e for e in arg.split(",") if e]
- if extensions and extensions[0] == "safe":
- extensions = extensions[1:]
- return mark_safe(markdown.markdown(
- force_text(value), extensions, safe_mode=True, enable_attributes=False))
- else:
- return mark_safe(markdown.markdown(
- force_text(value), extensions, safe_mode=False))
-
-@register.filter(is_safe=True)
-def restructuredtext(value):
- import warnings
- warnings.warn('The restructuredtext filter has been deprecated',
- category=DeprecationWarning)
- try:
- from docutils.core import publish_parts
- except ImportError:
- if settings.DEBUG:
- raise template.TemplateSyntaxError("Error in 'restructuredtext' filter: The Python docutils library isn't installed.")
- return force_text(value)
- else:
- docutils_settings = getattr(settings, "RESTRUCTUREDTEXT_FILTER_SETTINGS", {})
- parts = publish_parts(source=force_bytes(value), writer_name="html4css1", settings_overrides=docutils_settings)
- return mark_safe(force_text(parts["fragment"]))
diff --git a/django/contrib/markup/tests.py b/django/contrib/markup/tests.py
deleted file mode 100644
index 19a3b7e9d0..0000000000
--- a/django/contrib/markup/tests.py
+++ /dev/null
@@ -1,108 +0,0 @@
-# Quick tests for the markup templatetags (django.contrib.markup)
-import re
-import warnings
-
-from django.template import Template, Context
-from django import test
-from django.utils import unittest
-from django.utils.html import escape
-
-try:
- import textile
-except ImportError:
- textile = None
-
-try:
- import markdown
- markdown_version = getattr(markdown, "version_info", 0)
-except ImportError:
- markdown = None
-
-try:
- import docutils
-except ImportError:
- docutils = None
-
-class Templates(test.TestCase):
-
- textile_content = """Paragraph 1
-
-Paragraph 2 with "quotes" and @code@"""
-
- markdown_content = """Paragraph 1
-
-## An h2"""
-
- rest_content = """Paragraph 1
-
-Paragraph 2 with a link_
-
-.. _link: http://www.example.com/"""
-
- def setUp(self):
- self.save_warnings_state()
- warnings.filterwarnings('ignore', category=DeprecationWarning, module='django.contrib.markup')
-
- def tearDown(self):
- self.restore_warnings_state()
-
- @unittest.skipUnless(textile, 'textile not installed')
- def test_textile(self):
- t = Template("{% load markup %}{{ textile_content|textile }}")
- rendered = t.render(Context({'textile_content':self.textile_content})).strip()
- self.assertEqual(rendered.replace('\t', ''), """<p>Paragraph 1</p>
-
-<p>Paragraph 2 with &#8220;quotes&#8221; and <code>code</code></p>""")
-
- @unittest.skipIf(textile, 'textile is installed')
- def test_no_textile(self):
- t = Template("{% load markup %}{{ textile_content|textile }}")
- rendered = t.render(Context({'textile_content':self.textile_content})).strip()
- self.assertEqual(rendered, escape(self.textile_content))
-
- @unittest.skipUnless(markdown and markdown_version >= (2,1), 'markdown >= 2.1 not installed')
- def test_markdown(self):
- t = Template("{% load markup %}{{ markdown_content|markdown }}")
- rendered = t.render(Context({'markdown_content':self.markdown_content})).strip()
- pattern = re.compile("""<p>Paragraph 1\s*</p>\s*<h2>\s*An h2</h2>""")
- self.assertTrue(pattern.match(rendered))
-
- @unittest.skipUnless(markdown and markdown_version >= (2,1), 'markdown >= 2.1 not installed')
- def test_markdown_attribute_disable(self):
- t = Template("{% load markup %}{{ markdown_content|markdown:'safe' }}")
- markdown_content = "{@onclick=alert('hi')}some paragraph"
- rendered = t.render(Context({'markdown_content':markdown_content})).strip()
- self.assertTrue('@' in rendered)
-
- @unittest.skipUnless(markdown and markdown_version >= (2,1), 'markdown >= 2.1 not installed')
- def test_markdown_attribute_enable(self):
- t = Template("{% load markup %}{{ markdown_content|markdown }}")
- markdown_content = "{@onclick=alert('hi')}some paragraph"
- rendered = t.render(Context({'markdown_content':markdown_content})).strip()
- self.assertFalse('@' in rendered)
-
- @unittest.skipIf(markdown, 'markdown is installed')
- def test_no_markdown(self):
- t = Template("{% load markup %}{{ markdown_content|markdown }}")
- rendered = t.render(Context({'markdown_content':self.markdown_content})).strip()
- self.assertEqual(rendered, self.markdown_content)
-
- @unittest.skipUnless(docutils, 'docutils not installed')
- def test_docutils(self):
- t = Template("{% load markup %}{{ rest_content|restructuredtext }}")
- rendered = t.render(Context({'rest_content':self.rest_content})).strip()
- # Different versions of docutils return slightly different HTML
- try:
- # Docutils v0.4 and earlier
- self.assertEqual(rendered, """<p>Paragraph 1</p>
-<p>Paragraph 2 with a <a class="reference" href="http://www.example.com/">link</a></p>""")
- except AssertionError:
- # Docutils from SVN (which will become 0.5)
- self.assertEqual(rendered, """<p>Paragraph 1</p>
-<p>Paragraph 2 with a <a class="reference external" href="http://www.example.com/">link</a></p>""")
-
- @unittest.skipIf(docutils, 'docutils is installed')
- def test_no_docutils(self):
- t = Template("{% load markup %}{{ rest_content|restructuredtext }}")
- rendered = t.render(Context({'rest_content':self.rest_content})).strip()
- self.assertEqual(rendered, self.rest_content)