def redir_name()

in server/scripts/redirector.py [0:0]


def redir_name(handler, *args, **kwargs):
  channel = kwargs['channel']
  postfix = kwargs['path'][1:]

  # /apidocs/channels/stable/dartdoc-viewer/home => /stable
  # /apidocs/channels/stable/dartdoc-viewer/ => /stable
  # /apidocs/channels/stable/dartdoc-viewer => /stable
  if postfix == 'home' or postfix == '':
    return '/%s' % (channel)

  # /apidocs/channels/stable/dartdoc-viewer/dart:math => /stable/dart-math/dart-math-library.html
  is_lib_page = ONLY_DART_LIB.match(postfix)
  if is_lib_page:
    name = postfix.replace(':', '-')
    return '/%s/%s/%s-library.html' % (channel, name, name)

  # /apidocs/channels/stable/dartdoc-viewer/dart[:-]async.Future => /stable/dart-async/Future-class.html
  is_lib_and_class = LIB_NAME_AND_CLASS_NAME.match(postfix)
  if is_lib_and_class:
    lib_name = 'dart-' + is_lib_and_class.group(1)
    class_name = is_lib_and_class.group(2)
    return '/%s/%s/%s-class.html' % (channel, lib_name, class_name)

  abort(404)