Hi,
I've asked this question on SO, but got no answer so far, so I thought I
should ask it here as well:
I would like to implement similar functionality to Django template's custom
tags in Jinja.
In Django templates, to have a server-side function return a string and
have it inserted to a template, you can do something as simple as this:
from django import template
register = template.Library()
@register.inclusion_tag('app/gallery.html')def get_gallery(active=None):
### do complex server side things, etc.
context_dict = {
...
}
return context_dict
Now, calling this is as simple as
{% load app_tags %}{% get_gallery 'home' %}
This seems clear and simple enough for me.
Now my question: even after reading through all parts of the Jinja2
documentation, I do not see how a similar functionality should be
implemented in Jinja. I've seen that Jinja supports macros, calls, imports,
custom tests, custom filters, but I cannot see anything related to defining
custom tags with arbitrary server-side Python code.
The closest I've seen is custom filters, but that has a weird syntax when
used for tag-like purposes: to call tag(param1, param2), you'd need to
write param1|tag(param2). Also, I don't see how it can be used for
parameter-less functions.
There is also the whole extension support, but that seems overly
complicated with the simplest example
<http://jinja.pocoo.org/docs/dev/extensions/#example-extension> taking up
56 lines of code in the doc.
Can you explain how do you solve this problem, both in standalone Jinja2
environment (think static site generation), and under the new Django
versions (1.8+)?
--
You received this message because you are subscribed to the Google Groups
"pocoo-libs" 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].
Visit this group at http://groups.google.com/group/pocoo-libs.
For more options, visit https://groups.google.com/d/optout.