docs: def command_line_parser():
      """Create parser for command line usage."""
      description = "Create an IPython notebook from markdown."
      example_use = "Example:  notedown some_markdown.md > new_notebook.ipynb"
      parser = argparse.ArgumentParser(description=description,
                                       epilog=example_use)
      parser.add_argument('input_file',
                          help="markdown input file (default STDIN)",
                          nargs="?",
                          default='-')
      parser.add_argument('-o', '--output',
                          help=("output file, (default STDOUT). "
                                "If flag used but no file given, use "
                                "the name of the input file to "
                                "determine the output filename. "
                                "This will OVERWRITE if input and output "
                                "formats are the same."),
                          nargs="?",
                          default='-',
                          const='')
      parser.add_argument('--from',
                          dest='informat',
                          choices=('notebook', 'markdown'),
                          help=("format to convert from, defaults to markdown "
                                "or file extension"))
      parser.add_argument('--to',
                          dest='outformat',
                          choices=('notebook', 'markdown'),
                          help=("format to convert to, defaults to notebook "
                                "or file extension. Setting --render forces "
                                "this to 'markdown'"))
      parser.add_argument('--run', '--execute',
                          action='store_true',
                          help=("run the notebook, executing the "
                                "contents of each cell"))
      parser.add_argument('--timeout',
                          default=30,
                          type=int,
                          help=("set the cell execution timeout (in seconds)"))
      parser.add_argument('--strip',
                          action='store_true',
                          dest='strip_outputs',
                          help=("strip output cells"))
      parser.add_argument('--precode',
                          nargs='+',
                          default=[],
                          help=("additional code to place at the start of the "
                                "notebook, e.g. --pre '%%matplotlib inline' "
                                "'import numpy as np'"))
      parser.add_argument('--knit',
                          nargs='?',
                          help=("pre-process the markdown with knitr. "
                                "Default chunk options are 'eval=FALSE' "
                                "but you can change this by passing a string. "
                                "Requires R in your path and knitr installed."),
                          const='eval=FALSE')
      parser.add_argument('--rmagic',
                          action='store_true',
                          help=("autoload the rmagic extension. Synonym for "
                                "--precode '%%load_ext rpy2.ipython'"))
      parser.add_argument('--nomagic',
                          action='store_false',
                          dest='magic',
                          help=("disable code magic."))
      parser.add_argument('--render',
                          help=('render outputs, forcing markdown output'),
                          action='store_true')
      parser.add_argument('--template',
                          help=('template file'))
      parser.add_argument('--match',
                          default='all',
                          help=("determine kind of code blocks that get "
                                "converted into code cells. "
                                "choose from 'all' (default), 'fenced', "
                                "'strict' or a specific language to match on"))
      parser.add_argument('--examples',
                          help=('show example usage'),
                          action='store_true')
      parser.add_argument('--version',
                          help=('print version number'),
                          action='store_true')
      parser.add_argument('--debug',
                          help=('show logging output'),
                          action='store_true')
  
      return parser