docs: def as_tag(self, tag_func):
          """
          Creates a tag expecting the format:
          ``{% tag_name as var_name %}``
          The decorated func returns the value that is given to
          ``var_name`` in the template.
          """
          @wraps(tag_func)
          def tag_wrapper(parser, token):
              class AsTagNode(template.Node):
                  def render(self, context):
                      parts = token.split_contents()
  
                      # Resolve variables if their names are given.
                      def resolve(arg):
                          try:
                              return template.Variable(arg).resolve(context)
                          except template.VariableDoesNotExist:
                              return arg
                      args, kwargs = [], {}
                      for arg in parts[1:-2]:
                          if "=" in arg:
                              name, val = arg.split("=", 1)
                              if name in tag_func.__code__.co_varnames:
                                  kwargs[name] = resolve(val)
                                  continue
                          args.append(resolve(arg))
                      context[parts[-1]] = tag_func(*args, **kwargs)
                      return ""
              return AsTagNode()
          return self.tag(tag_wrapper)