docs: def blueprint(blueprint_name):
      """
      create and register a blueprint
      """
      app = os.getcwd().split('/')[-1]
      if app != 'app':
          logger.warning('''\033[31m{Warning}\033[0m
  ==> your current path is \033[32m%s\033[0m\n
  ==> please create your blueprint under app folder!''' % os.getcwd())
          exit(1)
  
      # destination path
      dst_path = os.path.join(os.getcwd(), blueprint_name)
      if os.path.isdir(dst_path):
          logger.warning('''\033[31m{Warning}\033[0m
  ==> bluprint \033[32m%s\033[0m\n exist
  ==> please try again !''' % dst_path)
          exit(1)
  
      # create dst_path
      _mkdir_p(dst_path)
  
      # change dir
      os.chdir(dst_path)
      # create files
      init_code('__init__.py', _init_blueprint_code %
          (blueprint_name, blueprint_name))
      init_code('views.py', _views_blueprint_code %
          (blueprint_name, blueprint_name))
      init_code('forms.py', _forms_basic_code)
  
      # register auth in app
      os.chdir(os.path.join(dst_path, '..'))
      with open('__init__.py', 'r+') as f:
          prev = pos = 0
          while f.readline():
              prev, pos = pos, f.tell()
          f.seek(prev)
          f.write(
              '\nfrom %s import %s\napp.register_blueprint(%s, url_prefix="/%s")\n\n'
              % (
                  blueprint_name, blueprint_name,
                  blueprint_name, blueprint_name
              )
          )
  
      # create blueprint templates
      templates_path = os.path.join(os.getcwd(), 'templates')
      os.chdir(templates_path)
      blueprint_templates_path = os.path.join(templates_path, blueprint_name)
      _mkdir_p(blueprint_templates_path)
  
      logger.info('''\033[33m{Info}\033[0m: create blueprint done!''')