docs: def install_bootstrapped_files(nb_path=None, server_config=True, DEBUG=False):
      """
      Installs javascript and exporting server extensions in Jupyter notebook.
  
      Args:
          nb_path (string): Path to notebook module.
          server_config (boolean): Install exporting server extensions.
          DEBUG (boolean): Verbose mode.
      """
  
      install_path = None
      print('Starting hide_code.js install...')
      current_dir = path.abspath(path.dirname(__file__))
      config_dirs = j_path.jupyter_config_path()
      notebook_module_path = Utils.get_notebook_module_dir()
  
      # check for config directory with a "custom" folder
      # TODO update this logic to check if custom.js file exists
      for dir in config_dirs:
          custom_dir = path.join(dir, "custom")
          if path.isdir(custom_dir):
              install_path = custom_dir
              break
  
      # last ditch effort in case jupyter config directories don't contain custom/custom.js
      if install_path == None:
          print("No config directories contain \"custom\" folder. Trying Jupyter notebook module path...")
          install_path = path.join(notebook_module_path, "static", "custom")
  
      if nb_path != None:
          install_path = nb_path
          print("Using argument supplied path: " + install_path)
  
      if DEBUG:
          print(install_path)
  
      # copy js into static/custom directory in Jupyter/iPython directory
      if path.isdir(install_path):
          shutil.copyfile(path.join(current_dir, "hide_code.js"), path.join(install_path, "hide_code.js"))
          print('Copying hide_code.js to ' + install_path)
  
          # add require to end of custom.js to auto-load on notebook startup
          print("Attempting to configure custom.js to auto-load hide_code.js...")
          try:
              with open(path.join(current_dir, "auto-load.txt")) as auto:
                  auto_load_txt = auto.read();
                  auto_loaded = False
  
                  # check if auto-load.txt is already in custom.js
                  with open(path.join(install_path, "custom.js"), 'r') as customJS:
                      if auto_load_txt in customJS.read():
                          auto_loaded = True
                          print("Custom.js already configured to auto-load hide_code.js.")
  
                  if not auto_loaded:  # append auto load require to end of custom.js
                      with open(path.join(install_path, "custom.js"), 'a') as customJS:
                          customJS.write(auto_load_txt)
                          print("Configured custom.js to auto-load hide_code.js.")
          except:
              print("Custom.js not in custom directory.")
      else:
          print('Unable to install into ' + install_path)
          print('Directory doesn\'t exist.')
          print('Make sure Jupyter is installed.')
  
      if server_config:
          print("Attempting to configure auto-loading for hide_code export handlers.")
          try:
              # Activate the Python server extension
              server_cm = ConfigManager(config_dir=j_path.jupyter_config_dir())
              cfg = server_cm.get('jupyter_notebook_config')
              server_extensions = (cfg.setdefault('NotebookApp', {})
                                   .setdefault('server_extensions', [])
                                   )
              extension = 'hide_code.hide_code'
              if extension not in server_extensions:
                  cfg['NotebookApp']['server_extensions'] += [extension]
                  server_cm.update('jupyter_notebook_config', cfg)
                  print('Configured jupyter to auto-load hide_code export handlers.')
              else:
                  print("Jupyter already configured to auto-load export handlers.")
          except:
              print('Unable to install server extension.')