docs: def _handle_template(self, token):
          """Handle a case where a template is at the head of the tokens."""
          params = []
          default = 1
          self._push()
          while self._tokens:
              token = self._tokens.pop()
              if isinstance(token, tokens.TemplateParamSeparator):
                  if not params:
                      name = self._pop()
                  param = self._handle_parameter(default)
                  params.append(param)
                  if not param.showkey:
                      default += 1
              elif isinstance(token, tokens.TemplateClose):
                  if not params:
                      name = self._pop()
                  return Template(name, params)
              else:
                  self._write(self._handle_token(token))
          raise ParserError("_handle_template() missed a close token")