mirror of
				https://github.com/django/django.git
				synced 2025-10-31 01:25:32 +00:00 
			
		
		
		
	Fixed #14502 again -- saner verbatim closing token
Previously, the closing token for the verbatim tag was specified as the
first argument of the opening token. As pointed out by Jannis, this is
a rather major departure from the core tag standard.
The new method reflects how you can give a specific closing name to
{% block %} tags.
			
			
This commit is contained in:
		| @@ -216,13 +216,8 @@ class Lexer(object): | ||||
|             if token_string.startswith(VARIABLE_TAG_START): | ||||
|                 token = Token(TOKEN_VAR, token_string[2:-2].strip()) | ||||
|             elif token_string.startswith(BLOCK_TAG_START): | ||||
|                 if block_content.startswith('verbatim'): | ||||
|                     bits = block_content.split(' ', 1) | ||||
|                     if bits[0] == 'verbatim': | ||||
|                         if len(bits) > 1: | ||||
|                             self.verbatim = bits[1] | ||||
|                         else: | ||||
|                             self.verbatim = 'endverbatim' | ||||
|                 if block_content[:9] in ('verbatim', 'verbatim '): | ||||
|                     self.verbatim = 'end%s' % block_content | ||||
|                 token = Token(TOKEN_BLOCK, block_content) | ||||
|             elif token_string.startswith(COMMENT_TAG_START): | ||||
|                 content = '' | ||||
|   | ||||
| @@ -1291,18 +1291,14 @@ def verbatim(parser, token): | ||||
|             {% don't process this %} | ||||
|         {% endverbatim %} | ||||
|  | ||||
|     You can also specify an alternate closing tag:: | ||||
|     You can also designate a specific closing tag block (allowing the | ||||
|     unrendered use of ``{% endverbatim %}``):: | ||||
|  | ||||
|         {% verbatim -- %} | ||||
|         {% verbatim myblock %} | ||||
|             ... | ||||
|         {% -- %} | ||||
|         {% endverbatim myblock %} | ||||
|     """ | ||||
|     bits = token.contents.split(' ', 1) | ||||
|     if len(bits) > 1: | ||||
|         closing_tag = bits[1] | ||||
|     else: | ||||
|         closing_tag = 'endverbatim' | ||||
|     nodelist = parser.parse((closing_tag,)) | ||||
|     nodelist = parser.parse(('endverbatim',)) | ||||
|     parser.delete_first_token() | ||||
|     return VerbatimNode(nodelist.render(Context())) | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user