@register.tag
def with_html(parser, token):
nodelist = parser.parse(('endwith_html',))
parser.delete_first_token()
return WithHTML(nodelist, token.contents.split()[1])
class WithHTML(template.Node):
def __init__(self, nodelist, variable):
self.nodelist = nodelist
self.variable = variable
def render(self, context):
context[self.variable] = self.nodelist.render(context)
return ''
{% with_html extra %}
{% if row.0.ingredient_set.count %}{{ row.0.ingredient_set.count }} Ingredients{% endif %}
{% if row.0.step_set.count %}<br/>{{ row.0.step_set.count }} Steps{% endif %}
{% endwith_html %}
{% with item_title=row.0.title item_description=row.0.description item_image=row.0.image item_extra=extra item_link=row.0.link item_button=newsletter.recipe_button %}
{% include "newsletter/email_full.html" %}
{% endwith %}