[svn] Add striptags filter.^
--HG--
branch : trunk
diff --git a/CHANGES b/CHANGES
index 5f7a71c..18b727a 100644
--- a/CHANGES
+++ b/CHANGES
@@ -41,6 +41,8 @@
- added `sum`, `abs` and `round` filters. This fixes #238
+- added `striptags` filter.
+
Version 1.0
-----------
diff --git a/jinja/filters.py b/jinja/filters.py
index e1d7d65..c83ed6a 100644
--- a/jinja/filters.py
+++ b/jinja/filters.py
@@ -8,6 +8,7 @@
:copyright: 2007 by Armin Ronacher.
:license: BSD, see LICENSE for more details.
"""
+import re
from random import choice
from urllib import urlencode, quote
from jinja.utils import urlize, escape
@@ -618,6 +619,16 @@
return wrapped
+def do_striptags(value, rex=re.compile(r'<[^>]+>')):
+ """
+ Strip SGML/XML tags and replace adjacent whitespace by one space.
+
+ *new in Jinja 1.1*
+ """
+ return ' '.join(rex.sub('', value).split())
+do_striptags = stringfilter(do_striptags)
+
+
def do_slice(slices, fill_with=None):
"""
Slice an iterator and return a list of lists containing
@@ -787,6 +798,7 @@
'format': do_format,
'capture': do_capture,
'trim': do_trim,
+ 'striptags': do_striptags,
'slice': do_slice,
'batch': do_batch,
'sum': do_sum,