docs: def sitemetrics(parser, token):
      """Renders sitemetrics counter.
      
      Two notation types are possible:
  
          1. No arguments:
             {% sitemetrics %} 
             Used to render all metrics counters registered and active for the current site.
             This requires 'Admin site' and 'Sites' Django contribs.
              
          2. Four arguments:
             {% sitemetrics by yandex for "138500" %}
             Used to render custom metrics counter by definite counter id.
             This is a simple template tag with no special requirements.
      
      """
      if settings.DEBUG and not ON_DEBUG:
          return sitemetricsDummyNode()
  
      tokens = token.split_contents()
      tokens_num = len(tokens)
  
      if tokens_num == 1:
          # Notation Type 1
          current_site = Site.objects.get_current()
  
          cached = cache.get('sitemetrics')
          if not cached or current_site.id not in cached['keycodes']:
              kcodes = current_site.keycode_set.filter(active=True).values()
              cache.set('sitemetrics', {'keycodes': {current_site.id: kcodes}}, CACHE_TIMEOUT)
          else:
              kcodes = cached['keycodes'][current_site.id]
          
      elif tokens_num == 5:
          # Notation Type 2
          if tokens[1] == 'by' and tokens[3] == 'for':
              kcodes = [{'provider': tokens[2], 'keycode': tokens[4].strip('"')}]
          else:
              raise template.TemplateSyntaxError(
                  'Four arguments `sitemetrics` tag notation should look like '
                  '{%% sitemetrics by yandex for "138500" %%}.')
      else:
          raise template.TemplateSyntaxError(
              '`sitemetrics` tag requires four or no arguments. '
              'E.g. {%% sitemetrics by yandex for "138500" %%} or {%% sitemetrics %%}.')
  
      _kcodes = []
      for kcode_data in kcodes:
          if kcode_data['provider'] in PROVIDERS_BY_ALIAS:
              p_cls = PROVIDERS_BY_ALIAS[kcode_data['provider']]
              kcode_data['tpl'] = p_cls.get_template_name()
              # Get counter parameters.
              kcode_data.update(p_cls.get_params())
              _kcodes.append(kcode_data)
  
      return sitemetricsNode(_kcodes)