class LessBlockNode(template.Node): def __init__(self, nodelist): self.nodelist = nodelist def render(self, context): output = self.nodelist.render(context) includes = '@import (reference) "variables.less";\n' includes += '@import (reference, optional) "../brands/%s/less/variables.less";\n' % context["brand"]["slug"] includes += '@import (reference) "mixins.less";\n' style_output = '<style type="text/less" media="all">\n%s\n%s</style>' % (includes, output) return style_output # register our tag lessblock = register.tag(lessblock) @register.filter def to_json(value): """ To use a python variable in JS, we call json.dumps to serialize as JSON server-side and reconstruct using JSON.parse. The serialized string must be escaped appropriately before dumping into the client-side code. https://stackoverflow.com/a/14290542 """ if type(value) != str: raise ValueError(f"Expected str got {type(value)} for to_json") escaped_output = escapejs(value)
DEALINGS IN THE SOFTWARE """ from django import template from django.template.defaultfilters import register """ filename: angularjs.py Usage: {% ng Some.angular.scope.content %} e.g. {% load angularjs %} <div ng-init="yourName = 'foobar'"> <p>{% ng yourName %}</p> </div> """ class AngularJS(template.Node): def __init__(self, bits): self.ng = bits def render(self, ctx): return "{{%s}}" % " ".join(self.ng[1:]) def do_angular(parser, token): bits = token.split_contents() return AngularJS(bits) register.tag('ng', do_angular)