private function renderImageFile(PhabricatorFile $file, PhabricatorObjectHandle $handle, array $options)
 {
     require_celerity_resource('lightbox-attachment-css');
     $attrs = array();
     $image_class = null;
     $use_size = true;
     if (!$options['size']) {
         $width = $this->parseDimension($options['width']);
         $height = $this->parseDimension($options['height']);
         if ($width || $height) {
             $use_size = false;
             $attrs += array('src' => $file->getBestURI(), 'width' => $width, 'height' => $height);
         }
     }
     if ($use_size) {
         switch ((string) $options['size']) {
             case 'full':
                 $attrs += array('src' => $file->getBestURI(), 'height' => $file->getImageHeight(), 'width' => $file->getImageWidth());
                 $image_class = 'phabricator-remarkup-embed-image-full';
                 break;
             case 'thumb':
             default:
                 $preview_key = PhabricatorFileThumbnailTransform::TRANSFORM_PREVIEW;
                 $xform = PhabricatorFileTransform::getTransformByKey($preview_key);
                 $attrs['src'] = $file->getURIForTransform($xform);
                 $dimensions = $xform->getTransformedDimensions($file);
                 if ($dimensions) {
                     list($x, $y) = $dimensions;
                     $attrs['width'] = $x;
                     $attrs['height'] = $y;
                 }
                 $image_class = 'phabricator-remarkup-embed-image';
                 break;
         }
     }
     if (isset($options['alt'])) {
         $attrs['alt'] = $options['alt'];
     }
     $img = phutil_tag('img', $attrs);
     $embed = javelin_tag('a', array('href' => $file->getBestURI(), 'class' => $image_class, 'sigil' => 'lightboxable', 'meta' => array('phid' => $file->getPHID(), 'uri' => $file->getBestURI(), 'dUri' => $file->getDownloadURI(), 'viewable' => true)), $img);
     switch ($options['layout']) {
         case 'right':
         case 'center':
         case 'inline':
         case 'left':
             $layout_class = 'phabricator-remarkup-embed-layout-' . $options['layout'];
             break;
         default:
             $layout_class = 'phabricator-remarkup-embed-layout-left';
             break;
     }
     if ($options['float']) {
         switch ($options['layout']) {
             case 'center':
             case 'inline':
                 break;
             case 'right':
                 $layout_class .= ' phabricator-remarkup-embed-float-right';
                 break;
             case 'left':
             default:
                 $layout_class .= ' phabricator-remarkup-embed-float-left';
                 break;
         }
     }
     return phutil_tag($options['layout'] == 'inline' ? 'span' : 'div', array('class' => $layout_class), $embed);
 }