#23356: Unable to create template tag which behaves similar to {% verbatim %}
---------------------------------+----------------------
Reporter: jrief | Owner: nobody
Type: Uncategorized | Status: new
Component: Template system | Version: master
Severity: Normal | Keywords: verbatim
Triage Stage: Unreviewed | Has patch: 1
Easy pickings: 0 | UI/UX: 0
---------------------------------+----------------------
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.
--
Ticket URL: <https://code.djangoproject.com/ticket/23356>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/048.d176da888852a12e6d312d8b3ba27bf7%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.