﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
23356	Unable to create template tag which behaves similar to {% verbatim %}	Jacob Rief	nobody	"Currently it is impossible to create custom template tags which behave similar to {{{ {% verbatim %} }}}.
The reason is in {{{Lexer.create_token()}}}. There, the class member {{{self.verbatim}}} is set for template blocks in ""verbatim"" state. It is impossible to turn on that state from outside, ie. a template tag.

Fixing this, would be as simple as changing {{{if block_content[:9] in ('verbatim', 'verbatim ')}}} to {{{if block_content.startswith('verbatim')}}} or to {{{if block_content[:9] in ('verbatim', 'verbatim ', 'verbatim_')}}}.
Then all template tags beginning with verbatim..., would start in ""verbatim"" state. I don't assume this will break any existing code; who starts the name of a templatetag with 'verbatim...' if not for that purpose?

Background information why this is useful:
Templates syntax for Django and AngularJS is very similar, and with some caveats it is possible to reuse a Django template for rendering in AngularJS. I therefore attempted to add a context sensitive variation of the verbatim tag to this app https://github.com/jrief/django-angular, but was hindered by this issue.

BTW: This part of the Django code did not change from 1.6 up to master.

For the purposes of anyone coming across this ticket and pulling their hair out over it, heres a template tag that might ease the pain;-
{{{

from django import template

register = template.Library()

@register.filter(name='specialbracket')
def specialbracket(value):
    if value == 'left':
        return ""{{""
    elif value == 'right':
        return ""}}""
    else:
        return ""??""
}}}

And the above example solved with this tag;-

{{{
        <td class=""field-{{ident}}"">{{ 'left'|specialbracket }} computer.{{field}} {{ 'right'|specialbracket }} </td>

}}}"	Uncategorized	new	Template system	dev	Normal		verbatim		Unreviewed	1	0	0	0	0	0
