Fixed #11021 -- Clarified newline stripping behavior in the truncatewords and truncatewords_html filters. Thanks to Ben Spaulding for the report and patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@13555 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
103f7f83eb
commit
806f3b26f8
|
@ -256,6 +256,8 @@ def truncatewords(value, arg):
|
||||||
Truncates a string after a certain number of words.
|
Truncates a string after a certain number of words.
|
||||||
|
|
||||||
Argument: Number of words to truncate after.
|
Argument: Number of words to truncate after.
|
||||||
|
|
||||||
|
Newlines within the string are removed.
|
||||||
"""
|
"""
|
||||||
from django.utils.text import truncate_words
|
from django.utils.text import truncate_words
|
||||||
try:
|
try:
|
||||||
|
@ -271,6 +273,8 @@ def truncatewords_html(value, arg):
|
||||||
Truncates HTML after a certain number of words.
|
Truncates HTML after a certain number of words.
|
||||||
|
|
||||||
Argument: Number of words to truncate after.
|
Argument: Number of words to truncate after.
|
||||||
|
|
||||||
|
Newlines in the HTML are preserved.
|
||||||
"""
|
"""
|
||||||
from django.utils.text import truncate_html_words
|
from django.utils.text import truncate_html_words
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -39,7 +39,10 @@ wrap = allow_lazy(wrap, unicode)
|
||||||
def truncate_words(s, num, end_text='...'):
|
def truncate_words(s, num, end_text='...'):
|
||||||
"""Truncates a string after a certain number of words. Takes an optional
|
"""Truncates a string after a certain number of words. Takes an optional
|
||||||
argument of what should be used to notify that the string has been
|
argument of what should be used to notify that the string has been
|
||||||
truncated, defaults to ellipsis (...)"""
|
truncated, defaulting to ellipsis (...)
|
||||||
|
|
||||||
|
Newlines in the string will be stripped.
|
||||||
|
"""
|
||||||
s = force_unicode(s)
|
s = force_unicode(s)
|
||||||
length = int(num)
|
length = int(num)
|
||||||
words = s.split()
|
words = s.split()
|
||||||
|
@ -51,10 +54,13 @@ def truncate_words(s, num, end_text='...'):
|
||||||
truncate_words = allow_lazy(truncate_words, unicode)
|
truncate_words = allow_lazy(truncate_words, unicode)
|
||||||
|
|
||||||
def truncate_html_words(s, num, end_text='...'):
|
def truncate_html_words(s, num, end_text='...'):
|
||||||
"""Truncates html to a certain number of words (not counting tags and
|
"""Truncates HTML to a certain number of words (not counting tags and
|
||||||
comments). Closes opened tags if they were correctly closed in the given
|
comments). Closes opened tags if they were correctly closed in the given
|
||||||
html. Takes an optional argument of what should be used to notify that the
|
html. Takes an optional argument of what should be used to notify that the
|
||||||
string has been truncated, defaults to ellipsis (...)."""
|
string has been truncated, defaulting to ellipsis (...).
|
||||||
|
|
||||||
|
Newlines in the HTML are preserved.
|
||||||
|
"""
|
||||||
s = force_unicode(s)
|
s = force_unicode(s)
|
||||||
length = int(num)
|
length = int(num)
|
||||||
if length <= 0:
|
if length <= 0:
|
||||||
|
|
|
@ -1883,6 +1883,8 @@ For example::
|
||||||
|
|
||||||
If ``value`` is ``"Joel is a slug"``, the output will be ``"Joel is ..."``.
|
If ``value`` is ``"Joel is a slug"``, the output will be ``"Joel is ..."``.
|
||||||
|
|
||||||
|
Newlines within the string will be removed.
|
||||||
|
|
||||||
.. templatefilter:: truncatewords_html
|
.. templatefilter:: truncatewords_html
|
||||||
|
|
||||||
truncatewords_html
|
truncatewords_html
|
||||||
|
@ -1902,6 +1904,8 @@ For example::
|
||||||
If ``value`` is ``"<p>Joel is a slug</p>"``, the output will be
|
If ``value`` is ``"<p>Joel is a slug</p>"``, the output will be
|
||||||
``"<p>Joel is ...</p>"``.
|
``"<p>Joel is ...</p>"``.
|
||||||
|
|
||||||
|
Newlines in the HTML content will be preserved.
|
||||||
|
|
||||||
.. templatefilter:: unordered_list
|
.. templatefilter:: unordered_list
|
||||||
|
|
||||||
unordered_list
|
unordered_list
|
||||||
|
|
Loading…
Reference in New Issue