code: def md2ipynb():
      assert len(sys.argv) == 3, "usage: input.md output.rst"
      (src_fn, input_fn, output_fn) = sys.argv
  
      # timeout for each notebook, in sec
      timeout = 60 * 60
      # if enable evaluation
      do_eval = int(os.environ.get("EVAL", True))
  
      # Skip these notebooks as some APIs will no longer be used
      skip_list = [
          "pytorch.md",
          "mnist.md",
          "custom-loss.md",
          "fit_api_tutorial.md",
          "01-ndarray-intro.md",
          "02-ndarray-operations.md",
          "03-ndarray-contexts.md",
          "gotchas_numpy_in_mxnet.md",
          "csr.md",
          "row_sparse.md",
          "fine_tuning_gluon.md",
          "inference_on_onnx_model.md",
          "amp.md",
          "profiler.md",
      ]
  
      require_gpu = []
      # the files will be ignored for execution
      ignore_execution = skip_list + require_gpu
  
      reader = notedown.MarkdownReader(match="strict")
      with open(input_fn, "r", encoding="utf8") as f:
          notebook = reader.read(f)
      if do_eval:
          if not any([i in input_fn for i in ignore_execution]):
              tic = time.time()
              notedown.run(notebook, timeout)
              print(
                  f"{src_fn}: Evaluated {input_fn} in {time.time()-tic} sec"
              )
      # need to add language info to for syntax highlight
      notebook["metadata"].update({"language_info": {"name": "python"}})
      with open(output_fn, "w", encoding="utf-8") as f:
          f.write(nbformat.writes(notebook))
      print(f"{src_fn}: Write results into {output_fn}")
  
imports: import sys
  import os
  import time
  import notedown
  import nbformat
label_desc: Use image node_id 1 for calling a global function with example usage: md2ipynb() without return types