mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	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:
		| @@ -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 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user