code: def gallery(args):
      
      from jcvi.apps.base import iglob
      from jcvi.utils.iter import grouper
  
      p = OptionParser(gallery.__doc__)
      p.add_option("--columns", default=3, type="int",
                   help="How many cells per row")
      p.add_option("--width", default=200, type="int",
                   help="Image width")
      opts, args = p.parse_args(args)
  
      if len(args) != 2:
          sys.exit(not p.print_help())
  
      folder, link_prefix = args
      width = opts.width
      images = iglob(folder, "*.jpg,*.JPG,*.png")
      td = '<td>{0}<br><a href="{1}"><img src="{1}" width="{2}"></a></td>'
      print("<table>")
      for ims in grouper(images, opts.columns):
          print('<tr height="{0}" valign="top">'.format(width + 5))
          for im in ims:
              if not im:
                  continue
              im = op.basename(im)
              pf = im.split('.')[0].replace('_', '-')
              link = link_prefix.rstrip("/") + "/" + im
              print(td.format(pf, link, width))
          print("</tr>")
      print("</table>")
docs: %prog gallery folder link_prefix
  
      Convert a folder of figures to a HTML table. For example:
  
      $ python -m jcvi.formats.html gallery Paper-figures/
      https://dl.dropboxusercontent.com/u/15937715/Data/Paper-figures/
  
      Maps the images from local to remote.